Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

satheeshkumarj's avatar

Assign Roles to Multiple Users while seeding [Spatie Roles and Permissions package]]

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]);
0 likes
1 reply
mlewis's avatar
mlewis
Best Answer
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

Please or to participate in this conversation.