'required|string|max:255', 'branch_id' => 'nullable|exists:branches,id', 'profile_photo_path' => 'nullable|image|mimes:jpeg,png,jpg|max:2048', 'sign' => 'nullable|image|mimes:jpeg,png,jpg|max:2048', ]; if ($this->password !==null) { $rules['password'] = 'required|string|min:8|confirmed'; } if ($this->method() === 'PUT') { $rules['email'] = 'required|email|unique:users,email,' . $this->id; $rules['nik'] = 'nullable|string|max:6|unique:users,nik,' . $this->id; } else { $rules['email'] = 'required|email|unique:users,email'; $rules['nik'] = 'nullable|string|max:6|unique:users,nik'; } return $rules; } public function passedValidation() { if ($this->password !== null) { $this->merge([ 'password' => Hash::make($this->password), ]); } } }