user()->accessibleServers(); return $table ->paginated(false) ->query(fn () => $baseQuery) ->poll('15s') ->columns([ Stack::make([ ServerEntryColumn::make('server_entry') ->searchable(['name']), ]), ]) ->contentGrid([ 'default' => 1, 'md' => 2, ]) ->recordUrl(fn (Server $server) => Console::getUrl(panel: 'server', tenant: $server)) ->emptyStateIcon('tabler-brand-docker') ->emptyStateDescription('') ->emptyStateHeading('You don\'t have access to any servers!') ->persistFiltersInSession() ->filters([ SelectFilter::make('egg') ->relationship('egg', 'name', fn (Builder $query) => $query->whereIn('id', $baseQuery->pluck('egg_id'))) ->searchable() ->preload(), ]); } public function getTabs(): array { $all = auth()->user()->accessibleServers(); $my = (clone $all)->where('owner_id', auth()->user()->id); $other = (clone $all)->whereNot('owner_id', auth()->user()->id); return [ 'my' => Tab::make('My Servers') ->badge(fn () => $my->count()) ->modifyQueryUsing(fn () => $my), 'other' => Tab::make('Others\' Servers') ->badge(fn () => $other->count()) ->modifyQueryUsing(fn () => $other), 'all' => Tab::make('All Servers') ->badge($all->count()), ]; } }