$input * @return void * * @throws ValidationException */ public function update(User $user, array $input): void { Validator::make($input, [ 'current_password' => ['required', 'string'], User::ATTRIBUTE_PASSWORD => Password::required(), ])->after(function (IlluminateValidator $validator) use ($user, $input) { if (! isset($input['current_password']) || ! Hash::check($input['current_password'], $user->password)) { $validator->errors() ->add('current_password', __('The provided password does not match your current password.')); } })->validateWithBag('updatePassword'); $user->forceFill([ User::ATTRIBUTE_PASSWORD => Hash::make(Arr::get($input, User::ATTRIBUTE_PASSWORD)), ])->save(); } }