Level 75
Yes you can with syncRoles
public function edit(User $user)
{
$user->load('roles');
$roles = Role::orderBy('name')->get();
return view('users.edit', compact('user', 'roles'));
}
public function update(Request $request, User $user)
{
// validation
$user->syncRoles($this->has('roles') ? $this->roles : []);
// flash message
return redirect()->route('users.edit', ['user' => $user]);
}
<select name="roles[]" multiple>
@foreach ($roles as $role)
<option value="{{ $role->name }}" {{ $user->roles->pluck('id')->contains($role->id) ? 'selected' : '' }}>
{{ $role->name }}
</option>
@endforeach
</select>
Docs: https://spatie.be/docs/laravel-permission/v3/basic-usage/role-permissions