Вы без api строите проект? на чистом laravel? я проще решил вопрос. Breeze для базовой аутентификации.
Дальше просто manyToMany User-Role и через сидер -
public function run()
{
$role_admin_user = new Role;
$role_admin_user->name = 'admin';
$role_admin_user->description = 'An admin user';
$role_admin_user->save();
$role_regular_user = new Role;
$role_regular_user->name = 'user';
$role_regular_user->description = 'A regular user';
$role_regular_user->save();
}
user..
$admin = new User;
$admin->name = 'Admin Name';
$admin->email = 'dmk.forsocial@gmail.com';
$admin->password = bcrypt('secret');
$admin->save();
$admin->roles()->attach(Role::where('name', 'admin')->first());
$user = new User;
$user->name = 'User';
$user->email = 'dmk.forweb@gmail.com';
$user->password = bcrypt('secret');
$user->save();
$user->roles()->attach(Role::where('name', 'user')->first());
и CheckRole middleware.
Безусловно подсмотрел в сети, но работает как надо для такой простой задачи
Если нужно, отпишитесь - скину подробнее