Policies are usually built around Models to determine if a user can perform one or more CRUD/BREAD actions on a particular Model. But, gates are usually more loose and can apply to any form of business action within the web application or service.
Instead of passing an anonymous function, You can also use a callback array to refer to a method in a particular class. Therefore, we can call the sitForExam() method in the ExamPolicy class like this: Yeah, true…
After defining our gates, we can now mount them wherever we want like club bouncers within our Controller actions and blade templates.