company; $hasTopNavigation = $company->appearance->has_top_navigation ?? false; Filament::getPanel('company') ->topNavigation($hasTopNavigation) ->sidebarCollapsibleOnDesktop(! $hasTopNavigation); if (Filament::getPanel('company')->hasTopNavigation()) { Filament::getPanel('company')->navigation( $this->buildCompanyNavigation() ); } NavigationGroup::configureUsing(static function (NavigationGroup $group): void { $group->localizeLabel(); }, isImportant: true); } /** * Build the company navigation. */ protected function buildCompanyNavigation(): callable { return function (NavigationBuilder $builder): NavigationBuilder { return $builder ->items(Dashboard::getNavigationItems()) ->groups([ $this->buildSettingsGroup(), $this->buildResourcesGroup(), ]); }; } /** * Build the settings group. */ protected function buildSettingsGroup(): NavigationGroup { return NavigationGroup::make('Settings') ->items([ ...CategoryResource::getNavigationItems(), ...CurrencyResource::getNavigationItems(), ...DiscountResource::getNavigationItems(), ...TaxResource::getNavigationItems(), ...Appearance::getNavigationItems(), ...CompanyDefault::getNavigationItems(), ...Invoice::getNavigationItems(), ...CompanyProfile::getNavigationItems(), ...Localization::getNavigationItems(), ]); } /** * Build the resources group. */ protected function buildResourcesGroup(): NavigationGroup { return NavigationGroup::make('Resources') ->items([ ...AccountResource::getNavigationItems(), ...ConnectedAccount::getNavigationItems(), ...LiveCurrency::getNavigationItems(), ...DepartmentResource::getNavigationItems(), ]); } }