title: Authorization methods only works for default guard in Laravel
body: <p>I'm using Laravel 5.5 and I'm trying to use <code>Gate</code> facade to allow admins to access resources like users. First, I define a gate in <code>AuthServiceProvider.php</code> like following:</p>
  
  <pre><code>Gate::define('view-users', 'App\Policies\UserPolicy@view');
  </code></pre>
  
  <p>Then, I write <code>view</code> method in Policy class like this:</p>
  
  <pre><code>public function view(Admin $admin, User $user)
  {
      return true;
  }
  </code></pre>
  
  <p>And, I apply the authorization like following:</p>
  
  <pre><code>//UsersController.php
  
  $user = User::first();
  if (Gate::allows('view-users', $user)) {
      $users = User::all();
      return view('admin.users.list', compact('users'));
  }
  return abort(403);
  </code></pre>
  
  <p>I note that, the <code>$user</code> argument is useless variable and I don't need it to perform authorization. 
  By the way, when I use <code>allows()</code> method of <code>Gate</code> facade, it always returns false. While, when I use <code>denies()</code> instead, these steps work fine.</p>
  
  <p>what's wrong with <code>allows()</code> method?!</p>
  
  <p>However, corresponding to the Laravel Docs,  I tested other ways to apply authorization via <code>middleware()</code>, <code>Model</code> or <code>authorize()</code>. But, I got the same result.</p>
  
  <p><strong>Edit:</strong>
  <strong>I should note that I'm using custom guard named <code>web_admin</code></strong></p>
  
  <p>Thanks for any help.</p>