И какая там более сложная нечитаемая логика?
public function handle($request, Closure $next, $roles)
{
if (!is_array($roles)) {
$roles = explode(self::DELIMITER, $roles);
}
if ($this->auth->guest() || !$request->user()->hasRole($roles)) {
abort(403);
}
return $next($request);
}
Ну так вот в примере показано — типа вставляйте в конструктор. Из этой строчки
PHP$this->user = $user;
видно что надо ещё и атрибуты обьявить