striped() ->columns([ IconColumn::make('sport.icon') ->label('') ->grow(false) ->color('primary') ->width(30) ->icon(fn ($record) => $record->sport->icon) ->tooltip(fn ($record) => $record->id) ->visibleFrom('lg'), TextColumn::make('country.name') ->wrap() ->color('gray') ->label('Event') ->icon(fn ($record) => $record->country->icon), TextColumn::make('name') ->searchable(), SelectColumn::make('level') ->width(30) ->options([ 'TOP' => 'TOP', 'MEDIUM' => 'MEDIUM', 'LOW' => 'LOW', ]), ])->filters([ SelectFilter::make('sport_id') ->label('Sport') ->options(fn () => Sport::where('is_active', 1)->pluck('name', 'id')->toArray()), SelectFilter::make('country_id') ->searchable() ->label('Countries') ->options(fn () => Country::orderBy('name')->pluck('name', 'id')->toArray()), ], layout: FiltersLayout::AboveContent) ->deferFilters(false) ->recordActions([ EditAction::make(), DeleteAction::make() ->tooltip('All elements connected to this group, including active events, will be deleted') ->before(function ($record) { Group::where('competition_group_id', $record->id)->delete(); Event::where('competition_group_id', $record->id)->delete(); ElementGroup::where('competition_group_id', $record->id)->delete(); CompetitionGroupProvider::where('competition_group_id', $record->id)->delete(); }) ->successNotification( Notification::make() ->success() ->title('Group deleted') ->body('The group and all relations has been deleted successfully.'), ), ]) ->toolbarActions([ BulkActionGroup::make([ DeleteBulkAction::make(), ]), ]); } }