columns([ TextColumn::make('user.name') ->label('Utilisateur') ->searchable() ->sortable(), TextColumn::make('key') ->label('Badge') ->badge() ->searchable() ->sortable(), TextColumn::make('earned_at') ->label('Obtenu le') ->dateTime() ->sortable(), ]) ->filters([ Filter::make('earned_at') ->label('Période') ->schema([ DatePicker::make('from')->label('Du'), DatePicker::make('until')->label('Au'), ]) ->query(function (Builder $query, array $data): Builder { return $query ->when($data['from'] ?? null, fn (Builder $q, string $date): Builder => $q->whereDate('earned_at', '>=', $date)) ->when($data['until'] ?? null, fn (Builder $q, string $date): Builder => $q->whereDate('earned_at', '<=', $date)); }), ]) ->recordActions([ ViewAction::make(), DeleteAction::make(), ]) ->toolbarActions([ BulkActionGroup::make([ DeleteBulkAction::make(), ]), ]) ->defaultSort('earned_at', 'desc'); } }