columns([ Tables\Columns\ImageColumn::make('thumbnail_path')->label('Thumb')->circular(), Tables\Columns\TextColumn::make('id')->sortable(), Tables\Columns\TextColumn::make('event_id')->label('Event'), Tables\Columns\TextColumn::make('likes_count')->label('Likes'), Tables\Columns\IconColumn::make('is_featured')->boolean(), Tables\Columns\TextColumn::make('created_at')->since(), ]) ->filters([]) ->actions([ Tables\Actions\ViewAction::make(), Tables\Actions\EditAction::make(), Tables\Actions\Action::make('feature') ->label('Feature') ->visible(fn($record) => ! (bool)$record->is_featured) ->action(fn($record) => $record->update(['is_featured' => 1])) ->icon('heroicon-o-star'), Tables\Actions\Action::make('unfeature') ->label('Unfeature') ->visible(fn($record) => (bool)$record->is_featured) ->action(fn($record) => $record->update(['is_featured' => 0])) ->icon('heroicon-o-star'), Tables\Actions\DeleteAction::make(), ]) ->bulkActions([ Tables\Actions\BulkActionGroup::make([ Tables\Actions\BulkAction::make('feature') ->label('Feature selected') ->icon('heroicon-o-star') ->action(fn($records) => $records->each->update(['is_featured' => 1])), Tables\Actions\BulkAction::make('unfeature') ->label('Unfeature selected') ->icon('heroicon-o-star') ->action(fn($records) => $records->each->update(['is_featured' => 0])), Tables\Actions\DeleteBulkAction::make(), ]), ]); } public static function getPages(): array { return [ 'index' => Pages\ListPhotos::route('/'), 'view' => Pages\ViewPhoto::route('/{record}'), 'edit' => Pages\EditPhoto::route('/{record}/edit'), ]; } } namespace App\Filament\Resources\PhotoResource\Pages; use App\Filament\Resources\PhotoResource; use Filament\Resources\Pages\ListRecords; use Filament\Resources\Pages\ViewRecord; use Filament\Resources\Pages\EditRecord; class ListPhotos extends ListRecords { protected static string $resource = PhotoResource::class; } class ViewPhoto extends ViewRecord { protected static string $resource = PhotoResource::class; } class EditPhoto extends EditRecord { protected static string $resource = PhotoResource::class; }