What is Laravel authorization policy vs gate system?

Updated May 16, 2026

Short answer

Policies handle model-based authorization, while gates handle general authorization logic.

Deep explanation

Gates are simple closures used for authorization checks, whereas policies are dedicated classes tied to models. Policies are more structured and scalable for complex applications. Laravel uses both through the Gate facade and Policy classes registered in AuthServiceProvider.

Real-world example

Used in CMS systems where users can only edit their own posts.

Common mistakes

  • Using gates for complex model logic instead of policies.

Follow-up questions

  • When should you use policies over gates?
  • How are policies auto-discovered?

More Laravel interview questions

View all →