canSave()) { return; } $parameters = [ 'gsm_phone' => $builder->getPostValue('gsm_phone'), 'office_phone' => $builder->getPostValue('office_phone'), 'land_phone' => $builder->getPostValue('land_phone'), 'identification_number' => $builder->getPostValue('identification_number'), 'birthday' => $builder->getPostValue('birthday'), 'register_type' => $builder->getPostValue('register_type'), ]; if ($builder->getPostValue('file') != null) { $parameters['file_id'] = $builder->getPostValue('file'); } elseif (empty($builder->getPostValue('file'))) { $parameters['file_id'] = null; } $user = $userModel->newQuery()->find(\auth()->id()); // Prevent removing already filled fields foreach ($parameters as $field => $value) { if ($user->$field && !$value) { $messages->error('visiosoft.module.profile::message.can_not_remove_filled_fields'); return; } } $oldCustomerInfo = $user->toArray(); $changes = $this->change($user, $parameters); event(new UserUpdated($oldCustomerInfo, $changes)); $messages->success(trans('visiosoft.module.profile::message.success_update')); } public function change($user, $data) { $user->fill($data); $changes = $user->getDirty(); $user->save(); if (!count($changes)) { return false; } return $changes; } }