validateOnly($property); } /** * @param User $user * @return array */ public function rules(User $user): array { return [ 'new_username' => $this->usernameRules('username'), 'current_password' => ['required', new IsCurrentPassword($user)], ]; } public function render() { return view('livewire.account.update-username'); } public function submit() { /** @var \App\Models\User */ $user = Auth::user(); $data = $this->validate($this->rules($user)); if (!$user->hasEnoughMoney(config('tadah.username_change_cost'))) { return $this->dispatchBrowserEvent('alert', __('You do not have enough money to change your username.')); } $user->updateUsername($data['new_username'], Request::ip(), Request::userAgent()); return redirect()->route('account')->with('status', __('Your username has been successfully updated!')); } }