To assign a role to an account, you can create a new model, say AccountRole, that belongs to an Account and has a role_id field. Then, you can use the Spatie permissions package to assign roles to AccountRole models. Here's an example:
// AccountRole.php
class AccountRole extends Model
{
protected $fillable = ['role_id'];
public function account()
{
return $this->belongsTo(Account::class);
}
public function role()
{
return $this->belongsTo(Role::class);
}
}
// Account.php
class Account extends Model
{
public function user()
{
return $this->belongsTo(User::class);
}
public function roles()
{
return $this->hasMany(AccountRole::class);
}
}
// Assigning a role to an account
$account = Account::find(4);
$role = Role::findByName('admin');
$account->roles()->create(['role_id' => $role->id]);
This way, you can assign roles to accounts instead of users.