getOwnerRecord(); return $table ->searchable(false) ->headerActions([ Actions\Action::make('toggleSuspend') ->hidden(fn () => $user->servers() ->whereNot('status', ServerState::Suspended) ->orWhereNull('status') ->count() === 0 ) ->label('Suspend All Servers') ->color('warning') ->action(function (SuspensionService $suspensionService) use ($user) { collect($user->servers)->filter(fn ($server) => !$server->isSuspended()) ->each(fn ($server) => $suspensionService->handle($server, SuspendAction::Suspend)); }), Actions\Action::make('toggleUnsuspend') ->hidden(fn () => $user->servers()->where('status', ServerState::Suspended)->count() === 0) ->label('Unsuspend All Servers') ->color('primary') ->action(function (SuspensionService $suspensionService) use ($user) { collect($user->servers()->get())->filter(fn ($server) => $server->isSuspended()) ->each(fn ($server) => $suspensionService->handle($server, SuspendAction::Unsuspend)); }), ]) ->columns([ TextColumn::make('uuid') ->hidden() ->label('UUID') ->searchable(), TextColumn::make('name') ->icon('tabler-brand-docker') ->label(trans('strings.name')) ->url(fn (Server $server): string => route('filament.admin.resources.servers.edit', ['record' => $server])) ->searchable() ->sortable(), TextColumn::make('node.name') ->icon('tabler-server-2') ->url(fn (Server $server): string => route('filament.admin.resources.nodes.edit', ['record' => $server->node])) ->sortable(), TextColumn::make('egg.name') ->icon('tabler-egg') ->url(fn (Server $server): string => route('filament.admin.resources.eggs.edit', ['record' => $server->egg])) ->sortable(), SelectColumn::make('allocation.id') ->label('Primary Allocation') ->options(fn (Server $server) => [$server->allocation->id => $server->allocation->address]) ->selectablePlaceholder(false) ->sortable(), TextColumn::make('image')->hidden(), TextColumn::make('databases_count') ->counts('databases') ->label('Databases') ->icon('tabler-database') ->numeric() ->sortable(), TextColumn::make('backups_count') ->counts('backups') ->label('Backups') ->icon('tabler-file-download') ->numeric() ->sortable(), ]); } }