'boolean']; } public function domains(): HasMany { return $this->hasMany(SiteDomain::class); } public function settings(): HasMany { return $this->hasMany(SiteSetting::class); } public function assignments(): HasMany { return $this->hasMany(SiteContent::class); } public function scopeActive(Builder $query): Builder { return $query->where('status', 'active'); } public function setting(string $key, mixed $default = null): mixed { $setting = $this->relationLoaded('settings') ? $this->settings->firstWhere('key', $key) : $this->settings()->where('key', $key)->first(); return $setting?->typedValue() ?? $default; } }