Authorize

Authorize a controller action via the gate

Description: Authorizes a controller action using the Gate, providing a clean alternative to Gate::authorize() or form request authorize().

Namespace: Illuminate\Routing\Attributes\Controllers\Authorize

Added in: Laravel 13.0

Usage

use Illuminate\Routing\Attributes\Controllers\Authorize;

// Before:
$this->authorize('create', Comment::class);

use App\Models\Comment;
use App\Models\Post;
use App\Http\Requests\StoreCommentRequest;
use Illuminate\Routing\Attributes\Controllers\Authorize;

// After:
class CommentController
{
    #[Authorize('create', [Comment::class, 'post'])]
    public function store(StoreCommentRequest $request, Post $post)
    {
        // ...
    }

    #[Authorize('delete', 'comment')]
    public function destroy(Comment $comment)
    {
        // ...
    }
}