PHPackages                             saeedvir/laravel-permissions - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. saeedvir/laravel-permissions

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

saeedvir/laravel-permissions
============================

A highly optimized role and permission package for Laravel 11/12 with caching, multiple guards, wildcard permissions, super admin, and Laravel Gate integration

v2.1.2(4mo ago)10181MITPHPPHP ^8.2

Since Nov 6Pushed 4mo agoCompare

[ Source](https://github.com/saeedvir/laravel-permissions)[ Packagist](https://packagist.org/packages/saeedvir/laravel-permissions)[ Docs](https://github.com/saeedvir/laravel-permissions)[ RSS](/packages/saeedvir-laravel-permissions/feed)WikiDiscussions main Synced today

READMEChangelog (4)Dependencies (5)Versions (10)Used By (0)

[![Latest Version](https://camo.githubusercontent.com/afcb019431f2e38e516e2c6371ec14f2dd12ef9c611ec7edb556e4d38760a7e0/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f73616565647669722f6c61726176656c2d7065726d697373696f6e732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/saeedvir/laravel-permissions)[![Total Downloads](https://camo.githubusercontent.com/1df1a506d6ef43affd9050289afff50533f51a95764a23abf7403e963bab5aaf/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f73616565647669722f6c61726176656c2d7065726d697373696f6e732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/saeedvir/laravel-permissions)[![License](https://camo.githubusercontent.com/c3bcdb90c69658892fd34f7e7065336130fe362142265e56e5126143f741be32/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f73616565647669722f6c61726176656c2d7065726d697373696f6e732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/saeedvir/laravel-permissions)

Laravel Permissions Package
===========================

[](#laravel-permissions-package)

A highly optimized role and permission package for Laravel 11/12 with advanced features including multiple guards, wildcard permissions, super admin, expirable permissions, expirable roles, and Laravel Gate integration.

- [Document for LLMs and AI code editors](https://context7.com/saeedvir/laravel-permissions)
- [Chat with AI for This Package](https://context7.com/saeedvir/laravel-permissions?tab=chat)

    - [حمایت مالی از من](https://reymit.ir/saeedvir)

✨ Features
----------

[](#-features)

### Core Features

[](#core-features)

- ✅ **Role-based Access Control (RBAC)**
- ✅ **Permission Management**
- ✅ **Direct User Permissions**
- ✅ **Polymorphic Relationships** - Works with any model

### Advanced Features

[](#advanced-features)

- 🚀 **Multiple Guards Support** - Separate permissions for web, api, admin
- 🎯 **Wildcard Permissions** - Use `posts.*` to grant all post permissions
- 👑 **Super Admin Role** - Automatically has ALL permissions
- ⏰ **Expirable Permissions** - Set expiration dates on permissions
- ⏰ **Expirable Roles** - Set expiration dates on roles (NEW in v2.1.0)
- 🔗 **Laravel Gate Integration** - Use `$user->can()` natively
- 📊 **Query Scopes** - `User::role('admin')->get()`
- 🔒 **Database Transactions** - Atomic permission changes

### Performance

[](#performance)

- ⚡ **Advanced Caching** with Redis tags support
- 💾 **Memory Optimized** with eager loading
- 🚄 **Database Optimized** with composite indexes
- 📦 **Multiple Database Support**

### Developer Experience

[](#developer-experience)

- 🛡️ **Middleware Protection** for routes
- 🎨 **Blade Directives** for templates
- 📝 **Comprehensive Documentation**
- ✅ **Laravel 11/12 Compatible**

Requirements
------------

[](#requirements)

- PHP 8.2 or higher
- Laravel 11.x or 12.x
- Composer

Quick Start
-----------

[](#quick-start)

```
# Install package
composer require saeedvir/laravel-permissions

# Publish config
php artisan vendor:publish --tag=permissions-config

# Run migrations
php artisan migrate

# Add trait to User model and start using!
```

Installation
------------

[](#installation)

### Step 1: Install via Composer

[](#step-1-install-via-composer)

Install the package via Composer:

```
composer require saeedvir/laravel-permissions
```

The package will automatically register its service provider.

### Step 2: Publish Configuration

[](#step-2-publish-configuration)

Publish the configuration file:

```
php artisan vendor:publish --tag=permissions-config
```

### Step 3: Configure Database

[](#step-3-configure-database)

Update your `.env` file:

```
PERMISSION_DB_CONNECTION=mysql
PERMISSION_DB_NAME=laravel_permission
PERMISSION_CACHE_ENABLED=true
PERMISSION_CACHE_EXPIRATION=3600
```

### Step 4: Configure Database Connection

[](#step-4-configure-database-connection)

Update `config/permissions.php` to set your database connection properly.

### Step 5: Run Migrations

[](#step-5-run-migrations)

```
php artisan migrate
```

Or publish and customize migrations first:

```
php artisan vendor:publish --tag=permissions-migrations
php artisan migrate
```

Setup
-----

[](#setup)

### Add Trait to User Model

[](#add-trait-to-user-model)

Add the `HasRolesAndPermissions` trait to your User model:

```
