Попробуйте
$this->validate($request, [
'user_name' => 'required|max:255',
'email' => 'required',
'password' => 'required|min:8'
]);
$user = User::findOrFail($id);
$input = $request->all();
$user->fill($input)->save();
Или попробуйте
$this->validate($request, [
'user_name' => 'required|max:255',
'email' => 'required',
'password' => 'required|min:8'
]);
$user = User::findOrFail($id);
$user->user_name = $request->input('user_name');
$user->email = $request->input('email');
$user->password = $request->input('password');
$user->save();
Оба способа верны для обновления.