poll('10sec') ->striped() ->columns([ TextColumn::make('starttime')->dateTime('d. M. Y')->label('Date'), TextColumn::make('league.name')->searchable(), TextColumn::make('home.name')->searchable(), TextColumn::make('away.name')->searchable(), // TextColumn::make('player_id')->searchable(), TextColumn::make('player.name') ->searchable() ->copyable() ->icon('phosphor-copy') ->iconPosition(IconPosition::After), TextColumn::make('rating'), ]) ->filters([ Filter::make('created_at') ->columns(2)->columnSpanFull() ->schema([ DatePicker::make('from'), DatePicker::make('until'), ]) ->query(function (Builder $query, array $data): Builder { return $query ->when( $data['from'], fn (Builder $query, $date): Builder => $query->whereDate('starttime', '>=', $date), ) ->when( $data['until'], fn (Builder $query, $date): Builder => $query->whereDate('starttime', '<=', $date), ); }) ->indicateUsing(function (array $data): array { $indicators = []; if ($data['from'] ?? null) { $indicators[] = Indicator::make('Starttime from '.Carbon::parse($data['from'])->toFormattedDateString()) ->removeField('from'); } if ($data['until'] ?? null) { $indicators[] = Indicator::make('Starttime until '.Carbon::parse($data['until'])->toFormattedDateString()) ->removeField('until'); } return $indicators; }), ], layout: FiltersLayout::AboveContent) ->deferFilters(false) ->recordActions([ EditAction::make(), ]) ->toolbarActions([ BulkActionGroup::make([ DeleteBulkAction::make(), ]), ]); } }