public function __construct() { $this->middleware('roles:Author')->only(['index','show','create']); $this->middleware('roles:User')->only(['index','show']); }En mi controlador, quiero métodos de acceso según el rol de los usuarios, por ejemplo, si el rol del usuario es administrador, entonces tiene que acceder a todos los métodos del controlador, si el rol del usuario es Autor, entonces tiene acceso al índice, crea y muestra el método y si el rol es Usuario, entonces solo tiene acceso al índice y al método show.
Puedes echar un vistazo a Gates ( docs ).
En su App\Providers\AuthServiceProvider agregue:
Gate::define('create-post', function ($user) { return $user->isAuthor(); //Here you should check the users role }); Y luego en el método de su controlador create() :
if (Gate::allows('create-post')) { // The current user can create posts... } Los otros dos métodos: index() y show() están disponibles para ambos roles, por lo que no se requiere ninguna acción.