Official Laravel source
AttributeIlluminate\Routing\Attributes\Controllers\Authorize

#[Authorize]

Applies authorization to the Laravel target element, controlling access based on abilities and models.

Available since

Laravel 13.0

Targets

classmethod

Parameters

  • $abilityUnitEnum|string

    Ability for authorization.

  • $modelsarray|string|null

    Models to be authorized.

  • $only?array

    Apply authorization only to certain models.

  • $except?array

    Exclude authorization application to certain models.

Practical usage

use Illuminate\Routing\Attributes\Controllers\Authorize;

class UsersController {
    #[Authorize('read_users', ['User'], ['admin:read'], ['admin:write'])]
    public function index() {
        return ['data' => []];
    }
}