Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

Grant is described as a Laravel roles-and-permissions package that keeps permission and role definitions in PHP enums while storing users’ role assignments in the database. That design can suit teams that want an authorization catalog maintained in code and checked through Laravel’s existing authorization features. The available description comes from Yannick Lyn Fatt’s Laravel News article published October 6, 2026; it is not an independent audit or a substitute for checking Grant’s official project documentation.

How Grant defines permissions and roles

According to the Laravel News description, a permission enum implements Grant’s Ability contract. Its enum backing values are registered as Laravel Gate abilities. A role enum implements Grant’s Role contract and lists the permissions that role grants.

The distinction is useful when considering the data model: the permission vocabulary and role definitions live in PHP code, while user role assignments are stored in the database. The article does not establish how assignment changes are made or administered, so do not assume a particular management interface or workflow.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Can you use Laravel’s can() and @can with Grant?

The Laravel News article says Grant works with Laravel’s existing authorization checks, including can(), Gate::authorize(), and Blade’s @can. In practical terms, application code and views can ask whether a user has a permission using Laravel’s authorization features rather than relying on a separate role-checking syntax.

The article states: “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.

Grant or Spatie Laravel Permission?

The two approaches differ most in where developers maintain the authorization vocabulary and how much they expect to manage through database records. Spatie’s project README describes managing roles and permissions in the database and checking permissions through Laravel’s can() API. Its documentation also covers using enum values with roles and permissions.

Decision point Grant, as described by Laravel News Spatie Laravel Permission, according to its project documentation
Where role and permission definitions live PHP enums define permissions and roles. Roles and permissions are managed in database-backed records; the documentation also describes enum use.
User role assignments Stored in the database, according to the article. Managed through the package’s role and permission system.
Laravel authorization checks The article says Laravel can(), Gate::authorize(), and Blade @can work. The README describes permission checks through Laravel’s can() API.
Role-specific middleware or Blade directive The article says there is no role middleware or @role directive. Not stated in the cited README and enum documentation.

Spatie’s enum documentation specifically notes that versions 6 and 7 do not support $casts to specify enums on the Permission model. Keep that limitation scoped to those versions; consult the documentation for the exact release you plan to use.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Choose based on the application’s operating model, not just syntax: if administrators must change roles and permissions as database records, assess the database-oriented workflow; if the team wants the canonical authorization vocabulary defined in code, enum-based definitions may be a better fit. In either case, verify that the chosen package release supports your Laravel and PHP versions before adopting it.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

What to verify before adopting Grant

The cited description does not establish Grant’s current version, license, supported Laravel or PHP versions, installation steps, migrations, maintenance status, or security posture. It also does not explain caching behavior, multi-tenancy, assignment-change workflows, or administration interfaces. Check Grant’s authoritative repository or package registry for those details before installing it or relying on it in production.

  • Confirm the release and its Laravel/PHP compatibility against your application’s versions.
  • Review installation and migration instructions in the official project documentation.
  • Determine how role assignments are created, changed, and removed in your application.
  • Check whether the package’s documented behavior covers your needs for caching, multiple tenants, and administration.
  • Review maintenance and security information from the project’s authoritative sources.

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.