Level 3
Fixed it. Here is the solution
<?php
namespace App\Http\Middleware;
use App\Providers\RouteServiceProvider;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class RedirectIfAuthenticated
{
public function handle(Request $request, Closure $next, ...$guards)
{
$guards = empty($guards) ? [null] : $guards;
if(!empty(Auth::user())) {
// //If already Logged User Redirection
$userAssginedRoles = Auth::user()->roles->pluck('name')->toArray();
$isStudent = in_array("student", $userAssginedRoles);
$isSuperAdmin = in_array("superadmin", $userAssginedRoles);
$isLecturer = in_array("lecturer", $userAssginedRoles);
foreach ($guards as $guard) {
//Super Admin
if (Auth::guard($guard)->check() && ($isSuperAdmin || $isLecturer)) {
return redirect(RouteServiceProvider::HOME);
}
//Student
if (Auth::guard($guard)->check() && ($isStudent)) {
return redirect(RouteServiceProvider::STUDENTHOME);
}
}
}else{
//Default Redirection
foreach ($guards as $guard) {
if (Auth::guard($guard)->check()) {
return redirect(RouteServiceProvider::HOME);
}
}
}
return $next($request);
}
}