current; } public function setCurrent(?Site $site): void { $this->current = $site; if ($site) { app()->instance(Site::class, $site); } } public function all(): Collection { return Site::query()->active()->orderByDesc('is_default')->orderBy('name')->get(); } public function resolve(Request $request): ?Site { $host = strtolower(preg_replace('/:\d+$/', '', $request->getHost())); $site = Site::query()->with(['domains','settings'])->whereHas('domains', fn ($q) => $q->where('domain', $host)->where('is_active', true))->first(); if (! $site && config('sites.fallback_to_default')) { $site = Site::query()->with(['domains','settings'])->active()->where('is_default', true)->first(); } $this->setCurrent($site); return $site; } }