/**
  * @param User                $user
  * @param FormRequestAbstract $request
  *
  * @return object
  */
 public function userPrimaryAddress(User $user, FormRequestAbstract $request)
 {
     $country = Country::find($request->get('primary_address_country_id'));
     $state = State::find($request->get('primary_address_state_id'));
     $substate = SubState::find($request->get('primary_address_substate_id'));
     $locator = $country;
     $locator = is_null($state) ? $locator : $state;
     $locator = is_null($substate) ? $locator : $substate;
     if (is_null($user->flaggedAddress('primary'))) {
         return $user->addAddress(['flag' => 'primary', 'street' => $request->get('primary_address_street'), 'street_extra' => $request->get('primary_address_street_extra'), 'city' => $request->get('primary_address_city'), 'zip' => $request->get('primary_address_zip')], $locator);
     }
     return $user->updateAddress(['flag' => 'primary', 'street' => $request->get('primary_address_street'), 'street_extra' => $request->get('primary_address_street_extra'), 'city' => $request->get('primary_address_city'), 'zip' => $request->get('primary_address_zip')], $locator);
 }