$input */ public function update(User $user, array $input): void { $changedFields = collect(['name', 'email']) ->filter(fn (string $field): bool => $user->{$field} !== $input[$field]) ->values() ->all(); Validator::make($input, [ 'name' => ['required', 'string', 'max:255'], 'email' => [ 'required', 'string', 'email', 'max:255', Rule::unique('users')->ignore($user->id), ], ])->validateWithBag('updateProfileInformation'); if ( $input['email'] !== $user->email && $user instanceof MustVerifyEmail ) { $this->updateVerifiedUser($user, $input); } else { $user->fill([ 'name' => $input['name'], 'email' => $input['email'], ])->save(); } if ($changedFields !== []) { auditLog('ui.user.profile_updated', [ 'team_id' => $user->currentTeam()?->id, 'resource' => 'user', 'user_name' => $user->name, 'changed_fields' => $changedFields, ]); } } /** * Update the given verified user's profile information. * * @param array $input */ protected function updateVerifiedUser(User $user, array $input): void { $user->fill([ 'name' => $input['name'], 'email' => $input['email'], 'email_verified_at' => null, ])->save(); $user->sendEmailVerificationNotification(); } }