Middleware Laravel com várias funções

Estou com alguns problemas com o middleware do Laravel. Deixe-me contar a idéia básica do que estou tentando realizar:

Os usuários registrados no site terão uma das quatro funções:

Aluno (padrão): pode acessar "índice'e'mostrar' VisualizaçõesAprovador: pode acessar os itens anteriores maisvisão global','atualizar'Editor: pode acessar o anterior, mais 'crio','editar'e'loja'Admin: pode acessartudo

fyi: 'visão geral' é uma espécie de visualização de índice, mas apenas para a função de aprovador e superior

O que vocês sugerem é a melhor maneira de fazer isso? Isto é o que eu fiz até agora, mas não parece funcionar:

Kernel.php

protected $middlewareGroups = [
...
    'approver+' => [
        \App\Http\Middleware\Approver::class,
        \App\Http\Middleware\Editor::class,
        \App\Http\Middleware\Admin::class,
    ],
];

protected $routeMiddleware = [
...
    'student' => \App\Http\Middleware\Student::class,
    'approver' => \App\Http\Middleware\Approver::class,
    'editor' => \App\Http\Middleware\Editor::class,
    'admin' => \App\Http\Middleware\Admin::class,
];

Http \ Middleware \ Admin.php

public function handle($request, Closure $next)
{
   if (Auth::check())
   {

        if(Auth::user()->isAdmin())
        {
            return $next($request);
        }
   }

    return redirect('login');
}

O modelo eloquente 'Usuário':

public function isAdmin()
{
    if($this->role_id === 4)
    { 
        return true; 
    } 
    else 
    { 
        return false; 
    }
}

Fiz exatamente o mesmo nos arquivos de middleware do Aprovador e Editor e nas funções isApprover e isEditor no modelo Usuário, editamos apenas o valor verificado na instrução if para 2 e 3, respectivamente.

Finalmente, aqui está o que eu fiz no meu arquivo routes \ web:

Route::get('scholen', 'SchoolsController@index');
Route::get('admin/scholen/overzicht', 'SchoolsController@overview')->middleware('approver+');
Route::get('admin/scholen/maken', 'SchoolsController@create')->middleware('approver+');
Route::post('scholen', 'SchoolsController@store')->middleware('approver+');
Route::get('scholen/{id}', 'SchoolsController@show');
Route::get('admin/scholen/{id}/bewerken', 'SchoolsController@edit')->middleware('admin');
Route::patch('admin/scholen/{id}', 'SchoolsController@update')->middleware('admin');
Route::delete('admin/scholen/{id}', 'SchoolsController@destroy')->middleware('admin');

Ainda não está tudo exatamente correto, mas fiquei paralisado desde que, quando faço login como usuário com direitos de Aprovador e tento acessar a visão geral das escolas, ele me redireciona de volta para a página inicial.

Em geral, parece que estou trabalhando muito caoticamente e não está certo, alguém poderia me dar conselhos sobre como fazê-lo com mais eficiência?

Muito obrigado antecipadamente!

questionAnswers(1)

yourAnswerToTheQuestion