where('project_id', auth()->user()->current_project_id); } protected function getTableColumns(): array { return [ IconColumn::make('provider') ->icon(fn (Server $record) => 'icon-'.$record->provider) ->tooltip(fn (Server $record) => $record->provider) ->width(24), TextColumn::make('name') ->searchable() ->sortable(), TextColumn::make('tags') ->label('Tags') ->badge() ->icon('heroicon-o-tag') ->formatStateUsing(fn ($state) => $state->name) ->color(fn ($state) => $state->color) ->searchable() ->sortable(), TextColumn::make('status') ->label('Status') ->badge() ->color(fn (Server $server) => Server::$statusColors[$server->status]) ->searchable() ->sortable(), TextColumn::make('created_at') ->label('Created At') ->formatStateUsing(fn ($record) => $record->created_at_by_timezone) ->searchable() ->sortable(), ]; } public function table(Table $table): Table { return $table ->heading(null) ->query($this->getTableQuery()) ->columns($this->getTableColumns()) ->recordUrl(fn (Server $record) => View::getUrl(parameters: ['server' => $record])) ->actions([ Action::make('settings') ->label('Settings') ->icon('heroicon-o-cog-6-tooth') ->authorize(fn ($record) => auth()->user()->can('update', $record)) ->url(fn (Server $record) => Settings::getUrl(parameters: ['server' => $record])), ]); } }