resolvePortal($request); CurrentPortalContext::set($portal); return $next($request); } private function resolvePortal(Request $request): ?Portal { // Admin-Session-Override hat höchste Priorität if ($request->hasSession() && $request->session()->has('admin_portal_filter')) { $overrideValue = $request->session()->get('admin_portal_filter'); $override = Portal::tryFrom((string) $overrideValue); if ($override !== null) { return $override; } } // Domain-basierte Auflösung via ThemeServiceProvider $theme = config('app.theme', 'main'); return match ($theme) { 'presseecho' => Portal::Presseecho, 'businessportal24' => Portal::Businessportal24, default => null, // Admin/Portal-Domain → kein automatischer Filter }; } }