chrisreedio/bastion
Bastion is a Laravel package that provides a secure, extensible foundation for authentication and access control. It offers clean configuration, sensible defaults, and minimal boilerplate to help you build robust login and authorization flows faster.
Bastion is a Filament-oriented permissions/access package: it syncs Filament resources/pages into permissions and lets you assign them through roles. v4.1.0 is a major-version release focused on Filament v4 compatibility and panel-aware syncing.
composer require chrisreedio/bastion
php artisan vendor:publish --tag="bastion-config"
php artisan vendor:publish --tag="bastion-migrations"
php artisan migrate
config/bastion.php for guard, permission model, resource discovery, and panel settings.BastionSyncCommand signature to confirm the exact panel argument syntax.php artisan bastion:sync
In v4.1.0 the sync command accepts an optional panel argument, so multi-panel apps can sync one panel at a time:
php artisan bastion:sync admin
php artisan bastion:sync after migrations and after deploying resource changes. In multi-panel apps, run it once per panel with the new panel argument rather than relying on a global sync.bastion:sync admin) or an option (--panel=admin) by inspecting BastionSyncCommand. Use the exact signature in scripts.php artisan permission:cache-reset
php artisan optimize:clear
If you use another permission backend, clear its cache explicitly.-v). Compare generated permission names to Filament resource/page slugs. If access fails, check guard names, role assignment, and policy/gate resolution before assuming sync failed.How can I help you explore Laravel packages today?