columns([ TextColumn::make('match_id')->color('info')->icon('phosphor-copy')->copyable() ->sortable() ->searchable( query: fn($query, $search) => $query->orWhere('match_id', (int) $search) ), TextColumn::make('ss_player_id') ->sortable() ->label('Player Id') ->color('success')->icon('phosphor-copy')->copyable() ->searchable( query: fn($query, $search) => $query->orWhere('ss_player_id', (int) $search) ), TextColumn::make('details.player_name')->label('Player')->searchable() ->tooltip(fn($record) => $record->details->full_name) ->sortable( query: fn(Builder $query) => $query->orderBy('details.player_name') ), TextColumn::make('event.home.ss_team_name')->color('primary')->searchable() ->sortable( query: fn(Builder $query) => $query->orderBy('event.home.ss_team_name') ), TextColumn::make('event.away.ss_team_name')->searchable()->color('success') ->sortable( query: fn(Builder $query) => $query->orderBy('ss_team_name') ), ]) // ->filters([ // Filter::make('player_filters') // ->schema([ // Checkbox::make('find_double'), // ])->query(function (Builder $query, array $data): Builder { // return $query->when( // $data['find_double'], // function (Builder $query) { // $arr = []; // $events = StatistikoPlayer::query()->select('match_id', 'ss_player_id')->get()->toArray(); // foreach ($events as $value) { // $match_id = $value['match_id']; // $player_id = $value['ss_player_id']; // if (isset($arr[$match_id]) && in_array($player_id, $arr[$match_id])) { // return $query->where('match_id', $match_id)->where('ss_player_id', $player_id); // } // $arr[$match_id][] = $player_id; // } // return $query->where('match_id', 0); // } // ); // })->indicateUsing(function (array $data): ?string { // if (! $data['find_double']) { // return null; // } // return 'Find Double'; // }), // ], layout: FiltersLayout::AboveContent) ->emptyStateHeading('No player double in an event') ->deferFilters(false) ->recordActions([ EditAction::make()->iconButton(), DeleteAction::make()->iconButton(), ]) ->toolbarActions([ BulkActionGroup::make([ DeleteBulkAction::make(), ]), ]); } }