Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Governor Laravel Package

mike-bronner/laravel-governor

Laravel Governor is a role and permission management package for Laravel that helps you define roles and abilities, assign them to users, and authorize access throughout your application with a simple, flexible API. It’s a lightweight way to add role-based access control to Laravel projects.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

Baseline (0.22.0): This release is a framework-compatibility bump only — Laravel 13 support was added; there are no new features, deprecations, or breaking changes. It is a maintenance signal, not a capability change. The assessment below is written fresh at 0.22.0.

  • Build vs. buy for authorization plumbing. Governor is an opinionated RBAC layer for Laravel: role and permission records, user↔role assignment, route middleware, Blade directives, and a publishable admin UI for managing roles. The buy argument is that role CRUD, the permission matrix UI, and middleware wiring are pure undifferentiated work; the build argument is that a pre-1.0, single-maintainer package becomes a dependency you must track. This release materially strengthens the buy side: a package that ships support for the newest Laravel major within its cycle is unlikely to become the reason you can't upgrade the app.
  • Roadmap sequencing for delegated administration. If a roadmap item is "account owners manage their own team's roles," Governor's UI plus role/permission tables move that from a multi-sprint build to an integration plus your own scoping rules. Treat it as the accelerator, not the feature: the actual product bet is the delegation model and its guardrails.
  • Scoping the feature correctly — RBAC vs. ABAC. Governor answers "does this user hold this permission?" It does not answer "can this user edit this record, in this tenant, in this workflow state." Decide up front that Governor is the role source of truth and Laravel Gates/Policies remain the record-level authority. Roadmap items that need attribute- or ownership-based rules (multi-tenant isolation, approval chains, per-record sharing) are not satisfied by adopting this package, and should not be estimated as if they are.
  • Compliance and security-review conversations. A centralized role/permission store makes the access matrix a reviewable artifact instead of scattered authorization checks in controllers. That is a real advantage in SOC 2 / customer security questionnaires. Verify what audit logging exists out of the box — assume you will add your own change history for role grants.
  • Internal tools and back-office. The most clearly positive ROI case: role-gated admin surfaces where the alternative is hand-rolling middleware and a management screen for a small internal audience.
  • Migration and modernization risk. "Does it survive our next framework upgrade?" is a standard criterion in dependency reviews. 0.22.0 is direct evidence on that question and should be recorded as such in the decision log.
  • Explicit non-decision: no reason to switch. If the org already runs spatie/laravel-permission, this release provides no functional pull — no migration path, no new capability, no performance story. Do not reopen a settled authorization choice over a compatibility bump.

When to Consider This Package

Adopt when:

  • You are on a current Laravel major (11/12/13), and the package's Composer constraints match your PHP and framework versions — confirm the exact illuminate/* and PHP bounds in composer.json rather than trusting the changelog line.
  • Your authorization needs are genuinely coarse-grained: roles → permissions, users in roles, route middleware, and view-level checks.
  • The shipped admin UI has real value to you — i.e., someone non-engineering-adjacent will manage roles, or you'd otherwise spend a sprint on CRUD screens.
  • You accept 0.x semantics: pin to an exact or ~0.22.0 constraint and review minor bumps, because pre-1.0 minors may break.
  • Single application, single team, and you can live with DB-backed permission resolution (verify the caching behavior and whether it's per-request or persistent, and how it invalidates on role change).

Look elsewhere, or treat with caution, when:

  • Policy-heavy or record-level requirements. Ownership checks, tenant isolation, sharing, and state-dependent rules belong in Gates/Policies. Using Governor for these leads to permission-table sprawl and role explosion.
  • Multi-tenancy with per-tenant role definitions. Verify whether team/tenant scoping is supported before committing; spatie/laravel-permission has an established teams feature and a far larger community.
  • Governance-grade IAM. Segregation of duties, approval workflows for grants, and fine-grained audit trails are out of scope for a package like this; you would build substantially on top or buy an external IdP/authorization service.
  • Large, hot permission matrices. Any DB-resolved, cache-dependent check at high request volume deserves a spike before adoption.
  • Stability guarantees. Pre-1.0 with a single maintainer is a bus-factor and API-churn consideration. The release cadence here (a focused compatibility release) reads as maintenance-mode, which is good for stability and means you should not expect feature velocity — do not plan roadmap items that depend on upstream additions.
  • You already have a working ACL package. Switching cost, re-permissioning risk, and migration effort with no functional payoff.

Verification shortlist before committing: Composer constraints for Laravel 13 and PHP; cache invalidation behavior on role change; superuser/override semantics; whether the admin UI is actively maintained alongside the core; and the issue-tracker response pattern over the last two quarters.

How to Pitch It (Stakeholders)

Executives. We can buy the roles-and-permissions plumbing instead of building it: the package supplies the data model, the enforcement hooks, and an admin screen for managing who can do what. That compresses "role management" from a multi-sprint build into an integration task and reduces the surface area we have to secure and maintain ourselves. The 0.22.0 release adds support for the newest Laravel version, which is the signal we care about most in a dependency review — it means this won't become the blocker at our next framework upgrade. The trade-offs are honest and small: it is pre-1.0 with a small maintainer base, so we pin the version and budget a day per year for upgrade diligence. It handles role-based access only; any rules about which specific records a person can touch still live in our own application code, and we should scope those separately. Recommendation: adopt for the role layer, keep record-level rules in-house.

Engineering. Governor provides role/permission tables, user-to-role assignment, route middleware, Blade directives, and a publishable management UI — the standard RBAC surface. Architecturally, treat it as the source of truth for role membership and keep Laravel Gates and Policies as the authority for record-level decisions; do not encode ownership or tenancy in permission names. Two integration notes: pin the constraint (~0.22.0) since 0.x minors can break, and confirm the permission cache's invalidation path on role changes before we rely on it in a request-heavy path. The 0.22.0 changelog is a single entry — Laravel 13 support — so it is a non-breaking compatibility release with no code changes or migrations required on our side; the only action item is confirming our Composer constraints resolve, and noting that a fresh assessment is now on file so future bumps have a baseline to diff against.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin