title: spatie/laravel-permission There is no permission named `edit_project` for guard `api`
body: <p>I am using Laravel 5.6 with spatie/laravel-permission version 2.9 also using Laravel Passport as auth driver with <code>$guard = 'api'</code>.</p>
  
  <p>When I am trying to assign an array of permission like <code>['edit_project', 'add_project' 'delete_project']</code> to a role with help of this function </p>
  
  <pre><code>public function assignPermissions($role, $permissions)
      {
  
          $role = Role::findByName($role);
  
          $role-&gt;givePermissionTo($permissions);
  
          return $role;
      }
  </code></pre>
  
  <p>but getting the error <code>There is no permission named</code>edit_project<code>for guard</code>api`. </p>
  
  <p>Also I have at config/auth.php </p>
  
  <p>
  
  <pre><code>return [
  
  /*
  |--------------------------------------------------------------------------
  | Authentication Defaults
  |--------------------------------------------------------------------------
  |
  | This option controls the default authentication "guard" and password
  | reset options for your application. You may change these defaults
  | as required, but they're a perfect start for most applications.
  |
  */
  
  'defaults' =&gt; [
      'guard' =&gt; 'web',
      'passwords' =&gt; 'users',
  ],
  
  /*
  |--------------------------------------------------------------------------
  | Authentication Guards
  |--------------------------------------------------------------------------
  |
  | Next, you may define every authentication guard for your application.
  | Of course, a great default configuration has been defined for you
  | here which uses session storage and the Eloquent user provider.
  |
  | All authentication drivers have a user provider. This defines how the
  | users are actually retrieved out of your database or other storage
  | mechanisms used by this application to persist your user's data.
  |
  | Supported: "session", "token"
  |
  */
  
  'guards' =&gt; [
      'web' =&gt; [
          'driver' =&gt; 'session',
          'provider' =&gt; 'users',
      ],
  
      'api' =&gt; [
          'driver' =&gt; 'passport',
          'provider' =&gt; 'users',
      ],
  ],
  
  /*
  |--------------------------------------------------------------------------
  | User Providers
  |--------------------------------------------------------------------------
  |
  | All authentication drivers have a user provider. This defines how the
  | users are actually retrieved out of your database or other storage
  | mechanisms used by this application to persist your user's data.
  |
  | If you have multiple user tables or models you may configure multiple
  | sources which represent each model / table. These sources may then
  | be assigned to any extra authentication guards you have defined.
  |
  | Supported: "database", "eloquent"
  |
  */
  
  'providers' =&gt; [
      'users' =&gt; [
          'driver' =&gt; 'eloquent',
          'model' =&gt; App\User::class,
      ],
  
      // 'users' =&gt; [
      //     'driver' =&gt; 'database',
      //     'table' =&gt; 'users',
      // ],
  ],
  
  /*
  |--------------------------------------------------------------------------
  | Resetting Passwords
  |--------------------------------------------------------------------------
  |
  | You may specify multiple password reset configurations if you have more
  | than one user table or model in the application and you want to have
  | separate password reset settings based on the specific user types.
  |
  | The expire time is the number of minutes that the reset token should be
  | considered valid. This security feature keeps tokens short-lived so
  | they have less time to be guessed. You may change this as needed.
  |
  */
  
  'passwords' =&gt; [
      'users' =&gt; [
          'provider' =&gt; 'users',
          'table' =&gt; 'password_resets',
          'expire' =&gt; 60,
      ],
  ],
  
  ];
  </code></pre>
  
  <p>if there is any solution please help me with it thanks.</p>
  
  <p>as well I am seeding the permission table by help of Larvel seeder which my permission table looks at the first time like below which the <code>guard_name</code> is web.</p>
  
  <p><a href="https://i.stack.imgur.com/LD4Ad.png" rel="noreferrer"><img src="https://i.stack.imgur.com/LD4Ad.png" alt="enter image description here"></a></p>
  
  <p>but manually I am changing the <code>guard_name</code> field to "api" which my permission table became like this.</p>
  
  <p><a href="https://i.stack.imgur.com/vvzhF.png" rel="noreferrer"><img src="https://i.stack.imgur.com/vvzhF.png" alt="enter image description here"></a></p>