*/ use HasFactory; protected $guarded = []; public function owner(): BelongsTo { return $this->belongsTo(User::class, 'owner_id'); } public function members(): BelongsToMany { return $this->belongsToMany(User::class) ->withPivot('role') ->as('membership') ->using(OrganisationUser::class) ->withTimestamps(); } public function servers(): HasMany { return $this->hasMany(Server::class); } public function applications(): HasMany { return $this->hasMany(Application::class); } public function services(): HasMany { return $this->hasMany(Service::class); } public function registries(): HasMany { return $this->hasMany(Registry::class); } public function sourceProviders(): HasMany { return $this->hasMany(SourceProvider::class); } public function providers(): HasMany { return $this->hasMany(Provider::class); } public function networks(): HasMany { return $this->hasMany(Network::class); } public static function createUniqueSlug(string $name): string { $slug = Str::slug($name); $count = 2; while (Organisation::where('slug', $slug)->exists()) { $slug = Str::slug($name).'-'.$count++; } return $slug; } }