Laravelのドキュメントには
User::find(1)->roles()->updateExistingPivot($roleId, $attributes);
としか書いておらず、$roleIdとはなんぞやと調べたのでメモ。
結論からいうと、中間テーブルのIDだった。
イメージでいうと、
foreach ($user->roles as $role) {
$pivot_id = $role->pivot->id;
$user->roles()->updateExistingPivot($pivot_id, ['role_id' => 5]);
}
のような感じ。
中間テーブルのFKを更新するのには向かない気がする。