Features
- Filament 3, 4 and 5 supported from a single branch. The four actions are now composition factories that detect the installed Filament major at runtime (
src/Support/FilamentVersion.php). Table actions resolve toFilament\Tables\Actions\*on v3 and the unifiedFilament\Actions\*namespace on v4/v5. - Shared ban form schema (
src/Forms/BanForm.php) used by both single and bulk ban actions.
Breaking changes
- Requires PHP 8.2+, Laravel 11.8+ / 12 / 13 (Laravel 10 support dropped)
- Action classes are now
final— customise the returned instance by chaining aftermake()instead of subclassing make()no longer accepts a custom name argument
Fixes
- Bulk ban/unban re-reads record state from the database before filtering (
Support\BulkRecords::fresh()): laravel-ban observers setbanned_aton separate instances, so stale in-memory models could previously cause skipped or duplicated bans - Bulk operations run inside a database transaction
- Ban form validates
expired_at(cannot be in the past) - Removed dead
Commands\FilamentBanCommandimport left over from the fork - Test suite rebuilt from scratch: real Pest coverage via orchestra/testbench (version detection, per-major action construction, ban/unban flows on sqlite)
Housekeeping
- CI matrix covers Filament 3/4/5 × Laravel 11/12/13 on PHP 8.2–8.5
- Dependabot now also watches composer dependencies
- Removed committed .DS_Store files; phpunit.xml tracked; README requirements & usage updated
Verified: unit matrix green on all legs + end-to-end integration test on Laravel 13.27 / Filament 5.7.6 with a live rendered admin panel.
Full changelog: v2.0.2...v3.0.0