poll('15s') ->striped() ->defaultPaginationPageOption(8) ->paginationPageOptions([8, 16, 24, 36]) ->columns([ Stack::make([ TextColumn::make('ss_player_id')->prefix('Id: ')->searchable()->color('success')->icon('phosphor-copy')->copyable(), TextColumn::make('player_name')->searchable()->prefix('Name: ')->color('primary')->icon('phosphor-copy')->copyable(), TextColumn::make('birthdate')->date()->prefix('Birthdate: '), TextColumn::make('height')->prefix('Height: ')->suffix(' cm'), TextColumn::make('nationality')->prefix('Nationality: '), TextColumn::make('position')->prefix('Position: '), TextColumn::make('ss_national_team_id')->prefix('National Team Id: '), TextColumn::make('tx_team_id')->prefix('Team Id: '), TextColumn::make('team_name')->prefix('Team Name: '), TextColumn::make('preferred_foot')->prefix('Preferred Foot: '), TextColumn::make('last_update')->date()->prefix('Last Update: '), TextColumn::make('created_at')->date()->prefix('Created: '), TextColumn::make('updated_at')->date()->prefix('Updated: '), ]), ]) ->emptyStateHeading('No double player in details') ->contentGrid([ 'md' => 2, 'xl' => 4, ]) ->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) { $pDetails = StatistikoDetail::pluck('ss_player_id')->toArray(); $doublpDetails = array_diff_assoc( $pDetails, array_unique($pDetails) ); $query->whereIn('ss_player_id', $doublpDetails)->orderBy('ss_player_id'); } ); })->indicateUsing(function (array $data): ?string { if (! $data['find_double']) { return null; } return 'Find Double'; }), ], layout: FiltersLayout::AboveContent) ->deferFilters(false) ->recordActions([ EditAction::make()->iconButton(), DeleteAction::make()->iconButton(), ]); } }