Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Clear out junk files and repair common Windows errors3Fix the driver behind crashes, sound loss and screen glitchesGrant is a Laravel roles-and-permissions package described as keeping permission and role definitions in PHP enums while storing users’ role assignments in the database. That split can suit teams who want the authorization vocabulary reviewed and changed in code, but it is not the same as administering the permission catalog dynamically. The available description comes from Yannick Lyn Fatt’s Laravel News article, published October 6, 2026; it does not establish Grant’s current release, compatibility, license, or maintenance status.
How Grant’s enum-based authorization is described
According to the Laravel News article, a permission enum implements Grant’s Ability contract, and its enum backing values are registered as Laravel Gate abilities. A role enum implements Grant’s Role contract and lists the permissions it grants. User role assignments, by contrast, are stored in the database.
As an Amazon Associate I earn from qualifying purchases.
The design separates the catalog from assignments: developers define which permissions and roles exist in PHP, while user-role relationships are represented in persistent data. This can make the set of recognized abilities visible in code review. The article does not establish how Grant handles assignment changes, caching, administration screens, or multi-tenant authorization, so those details need confirmation from the package’s authoritative documentation.
Can Grant work with Laravel’s can() and @can?
The Laravel News article says Grant registers enum backing values as Gate abilities and that Laravel’s existing can(), Gate::authorize(), and Blade @can checks work with the package. In the described approach, application code checks a permission through Laravel’s authorization features rather than relying on a separate role-checking syntax.
#1 Best Overall
As the article puts it: “There’s no role middleware or @role directive; routes use Laravel’s authorization features to check a permission.” — Yannick Lyn Fatt, Laravel News, October 6, 2026.
That distinction matters if a project’s route definitions or Blade templates are built around role-specific middleware or directives. The article’s description instead points to checking the permission required by an action through Laravel’s authorization APIs.
When the enum-and-database split may fit
Consider Grant if the permission catalog belongs in code
An enum-defined catalog may be attractive when developers want role and permission names to be explicit, discoverable in the application code, and changed through the normal development and review process. Database-backed assignments can still represent which roles users hold without making the catalog itself a set of freely editable records.
Look elsewhere if administrators must edit permissions dynamically
If non-developers need to create permissions, change role definitions, or manage the authorization vocabulary through database-backed records at runtime, verify whether Grant supports that workflow before adopting it. The cited article establishes enum definitions and database-backed user role assignments, but it does not explain a dynamic permission-management interface.
Rank #3
Check operational needs separately
Do not infer behavior for assignment lifecycle, caching, multi-tenancy, or administrative tooling from the enum design alone. Confirm each requirement in Grant’s official documentation or source code before relying on it in an application.
How Grant compares with Spatie Laravel Permission
Spatie Laravel Permission is a useful comparison when choosing between code-defined authorization vocabulary and database-managed role and permission records. Spatie’s project README describes roles and permissions managed in a database and permission checks through Laravel’s can() API. Its documentation also describes enum use, so enums alone do not distinguish the approaches; the relevant question is how the application manages the catalog and assignments.
Rank #4
| Decision point | Grant, as described by Laravel News | Spatie Laravel Permission, as described by its project documentation |
|---|---|---|
| Where role and permission definitions live | PHP enums; a permission enum implements Ability, and a role enum implements Role. |
Roles and permissions are managed in database records; Spatie also documents using enum values. |
| User role assignments | Stored in the database, according to the article. | Managed through the package’s database-backed role and permission approach. |
| Permission checks | The article says Laravel’s can(), Gate::authorize(), and Blade @can work. |
The README describes checking permissions through Laravel’s can() API. |
| Role-specific middleware or Blade directive | The article explicitly says there is no role middleware or @role directive. |
Not established here; check the documentation for the release being considered. |
| Compatibility with a particular Laravel and PHP project | Not stated in the cited article. | Check the current official compatibility documentation for the release being considered. |
Spatie’s enum documentation specifically notes that versions 6 and 7 do not support using $casts to specify enums on the Permission model. Treat that as a version-scoped limitation, not a statement about every release. Before choosing either package, compare its current official compatibility guidance with the application’s Laravel and PHP versions.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →What to verify before adopting Grant
The available Grant description is a secondary article, not an authoritative package reference. It does not provide enough evidence to recommend an installation path or a particular release. Before adding Grant to a project, locate its official repository or package-registry entry and verify:
Quick Recap
Best Value
- Whether the project is actively maintained and which release is current.
- Supported Laravel and PHP versions for that release.
- The license and package installation requirements.
- Which migrations or setup steps are required and how role assignments are changed.
- Whether its documented behavior covers the application’s needs for caching, administration, and tenancy.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




