['required', 'string', 'max:255', Rule::unique(User::TABLE)->ignore($user->id)], 'email' => ['required', 'email', 'max:255', Rule::unique(User::TABLE)->ignore($user->id)], ])->validateWithBag('updateProfileInformation'); if (isset($input['photo'])) { $user->updateProfilePhoto($input['photo']); } if ($input['email'] !== $user->email && $user instanceof MustVerifyEmail) { $this->updateVerifiedUser($user, $input); } else { $user->forceFill([ User::ATTRIBUTE_NAME => Arr::get($input, 'name'), User::ATTRIBUTE_EMAIL => Arr::get($input, 'email'), ])->save(); } } /** * Update the given verified user's profile information. * * @param mixed $user * @param array $input * @return void */ protected function updateVerifiedUser(mixed $user, array $input): void { $user->forceFill([ User::ATTRIBUTE_NAME => Arr::get($input, 'name'), User::ATTRIBUTE_EMAIL => Arr::get($input, 'email'), User::ATTRIBUTE_EMAIL_VERIFIED_AT => null, ])->save(); $user->sendEmailVerificationNotification(); } }