/**
  * Update the profile based on the form submission
  * @param ProfileUpdateRequest $request
  * @return \Illuminate\Http\RedirectResponse
  */
 public function update(ProfileUpdateRequest $request)
 {
     $contact = $this->getContact();
     $contact->setName($request->input('name'));
     $contact->setRole($request->input('role'));
     $contact->setEmailAddress($request->input('email_address'));
     try {
         $work = $contact->getPhoneNumber(PhoneNumber::WORK);
         $work->setNumber(preg_replace("/[^0-9]/", "", $request->input('work_phone')));
         $contact->setPhoneNumber($work);
         $mobile = $contact->getPhoneNumber(PhoneNumber::MOBILE);
         $mobile->setNumber(preg_replace("/[^0-9]/", "", $request->input('mobile_phone')));
         $contact->setPhoneNumber($mobile);
         $home = $contact->getPhoneNumber(PhoneNumber::HOME);
         $home->setNumber(preg_replace("/[^0-9]/", "", $request->input('home_phone')));
         $contact->setPhoneNumber($home);
         $fax = $contact->getPhoneNumber(PhoneNumber::FAX);
         $fax->setNumber(preg_replace("/[^0-9]/", "", $request->input('fax')));
         $contact->setPhoneNumber($fax);
     } catch (Exception $e) {
         return redirect()->back()->withErrors($e->getMessage());
     }
     $contactController = new ContactController();
     try {
         $contactController->updateContact($contact);
     } catch (Exception $e) {
         Log::error($e->getMessage());
         return redirect()->back()->withErrors(trans("errors.failedToUpdateProfile"));
     }
     $this->clearProfileCache();
     return redirect()->action("ProfileController@show")->with('success', trans("profile.profileUpdated"));
 }