Call auth()->user() from NavigationItems

With Filament V2 I could do that :

        Filament::serving(function () {
            Filament::registerNavigationItems(
                auth()->user()?->groups->map(function ($group) {
                    return NavigationItem::make($group->name)
                        ->group('Group'))
                         // ...;
                })->toArray() ?? []
            );

And dynamic items based on authenticated user was generated.

But with FIlament v3, i haven't access to auth()->user() or $panel->auth()->use() because it's always null.

I know that I have to pass with callback function, but $panel->navigationItems() doesn't allow callback. I tried with $panel->navigation() but all my menu is override and it doesn't work.

Have you any idea ?
Solution
Just did a quick test, this seems to work too:
    return $panel
        ->navigationItems([
            NavigationItem::make('Test')
                ->visible(fn () => auth()->user()->can('test'))
                // ...
        ])
Was this page helpful?