default() ->id('panel') ->path('panel') ->login() ->profile() ->colors([ 'primary' => Color::Amber, ]) ->navigationGroups([ 'Home', 'About US', 'Our Solutions', 'News & Stories', 'Careers', 'Contact', 'Settings', 'Activities', ]) ->discoverResources(in: app_path('Filament/Resources'), for: 'App\\Filament\\Resources') ->discoverPages(in: app_path('Filament/Pages'), for: 'App\\Filament\\Pages') ->pages([ Pages\Dashboard::class, HomePageSettings::class, ManageCtaSettings::class, ]) ->discoverWidgets(in: app_path('Filament/Widgets'), for: 'App\\Filament\\Widgets') ->widgets([ Widgets\AccountWidget::class, ]) ->middleware([ EncryptCookies::class, AddQueuedCookiesToResponse::class, StartSession::class, AuthenticateSession::class, ShareErrorsFromSession::class, VerifyCsrfToken::class, SubstituteBindings::class, DisableBladeIconComponents::class, DispatchServingFilamentEvent::class, ]) ->authMiddleware([ Authenticate::class, ]) ->resources([ config('filament-logger.activity_resource'), ApplicationResource::class, ]); } public function boot(): void { Gate::before(function (User $user, string $ability) { if ($user->role === UserRole::ADMIN) { return true; } return null; }); Gate::define('view-activity-logs', function (User $user) { return $user->role === UserRole::ADMIN; }); Gate::define('manage-news-and-success', function (User $user) { return $user->role === UserRole::NEWS_WRITER || $user->role === UserRole::ADMIN || $user->role === UserRole::MANAGER; }); Gate::define('view-authors', function (User $user) { return $user->role === UserRole::NEWS_WRITER || $user->role === UserRole::ADMIN || $user->role === UserRole::MANAGER; }); } }