route()?->parameter('tenant'); if ($routeTenant instanceof Tenant) { Filament::setTenant($routeTenant); return $next($request); } $user = $request->user(); if (! $user instanceof User) { return $next($request); } $tenant = null; try { $tenant = Tenant::current(); } catch (\RuntimeException) { $tenant = null; } if ($tenant instanceof Tenant && ! app(CapabilityResolver::class)->isMember($user, $tenant)) { $tenant = null; } if (! $tenant) { $tenant = $user->tenants() ->whereNull('deleted_at') ->where('status', 'active') ->first(); } if (! $tenant) { $tenant = $user->tenants() ->whereNull('deleted_at') ->first(); } if (! $tenant) { $tenant = $user->tenants() ->withTrashed() ->first(); } if ($tenant) { Filament::setTenant($tenant, true); } return $next($request); } }