searchable(false) ->columns([ Tables\Columns\ImageColumn::make('picture') ->visibleFrom('lg') ->label('') ->extraImgAttributes(['class' => 'rounded-full']) ->defaultImageUrl(fn (User $user) => 'https://gravatar.com/avatar/' . md5(strtolower($user->email))), Tables\Columns\TextColumn::make('external_id') ->searchable() ->hidden(), Tables\Columns\TextColumn::make('uuid') ->label('UUID') ->hidden() ->searchable(), Tables\Columns\TextColumn::make('username') ->searchable(), Tables\Columns\TextColumn::make('email') ->searchable() ->icon('tabler-mail'), Tables\Columns\IconColumn::make('root_admin') ->visibleFrom('md') ->label('Admin') ->boolean() ->trueIcon('tabler-star') ->falseIcon('tabler-star-off') ->sortable(), Tables\Columns\IconColumn::make('use_totp')->label('2FA') ->visibleFrom('lg') ->icon(fn (User $user) => $user->use_totp ? 'tabler-lock' : 'tabler-lock-open-off') ->boolean()->sortable(), Tables\Columns\TextColumn::make('servers_count') ->counts('servers') ->icon('tabler-server') ->label('Servers'), Tables\Columns\TextColumn::make('subusers_count') ->visibleFrom('sm') ->label('Subusers') ->counts('subusers') ->icon('tabler-users'), // ->formatStateUsing(fn (string $state, $record): string => (string) ($record->servers_count + $record->subusers_count)) ]) ->filters([ // ]) ->actions([ Tables\Actions\EditAction::make(), ]) ->checkIfRecordIsSelectableUsing(fn (User $user) => !$user->servers_count) ->bulkActions([ Tables\Actions\BulkActionGroup::make([ Tables\Actions\DeleteBulkAction::make(), ]), ]); } protected function getHeaderActions(): array { return [ Actions\CreateAction::make() ->label('Create User'), ]; } }