Level 10
get() is returning you a collection of users you then need to loop through to assign the role.
$users = User::where('user_type', $roleName)->get();
foreach($users as $user) {
$user->assignRole([$role->id]);
}
2 likes
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
I need to assign roles for multiple users . Everything works fine if there is only one user
$roleName = 'Administrator';
$role = Role::create(['name' => 'Administrator']);
$permissions = Permission::pluck('id','id')->all();
$role->syncPermissions($permissions);
$user = User::where('user_type', $roleName)->get();
$user->assignRole([$role->id]);
get() is returning you a collection of users you then need to loop through to assign the role.
$users = User::where('user_type', $roleName)->get();
foreach($users as $user) {
$user->assignRole([$role->id]);
}
Please or to participate in this conversation.