current(); if (! $tenant) return $next($request); $order = (array) ($tenant->settings['nav_group_order'] ?? []); if (empty($order)) $order = self::DEFAULT_ORDER; // Only touch the tenant panel — bail if the current request isn't in it. $panel = Filament::getCurrentPanel(); if (! $panel || $panel->getId() !== 'tenant') return $next($request); $groups = array_map( fn (string $key) => NavigationGroup::make(__('nav.group.' . $key)), $order, ); $panel->navigationGroups($groups); return $next($request); } }