hdaklue/porter
Lightweight, fast access control for Laravel with roles modeled as domain logic. Assign roles between any Assignable (users/teams) and Roleable (projects/docs) via a Roster. Supports cross-database role assignments for complex, distributed architectures.
Porter's architecture aligns well with Laravel's service container and Eloquent patterns by treating roles as domain-specific business logic classes rather than database abstractions. Its minimal three-component design (Assignable, Roleable, Roster) avoids the bloat of traditional RBAC packages while enabling type-safe role definitions. Integration feasibility is high for Laravel 11/12 projects due to Composer-based installation and native Laravel integrations (Blade directives, middleware, Gates/Policies). However, technical risks are significant: 0 dependents and 121 stars indicate minimal real-world validation; the "2025-10-21" release date appears erroneous (likely a placeholder), raising concerns about stability; cross-database support lacks concrete test cases in documentation; and the single maintainer seeking co-maintainers suggests fragile long-term support. Key questions include: What production environments use this package? How is cross-database failover tested? Are there known performance bottlenecks at scale? What's the actual release timeline?
Porter fits cleanly within modern Laravel stacks (PHP 8.3+, Laravel 11/12) and requires no additional infrastructure. Migration from traditional RBAC systems (e.g., Spatie) would involve: 1) Replacing permission tables with Porter's single Roster table via migration; 2) Refactoring roles into dedicated classes extending BaseRole; 3) Converting permission checks to assignment-based logic (e.g., `$user->getAssignmentOn($
How can I help you explore Laravel packages today?