/**
  * @param array   $memberData The new members details
  * @param boolean $isAdminCreating Is the user making the change an admin
  * @return User
  */
 public function registerMember(array $memberData, $isAdminCreating)
 {
     if (empty($memberData['profile_photo_private'])) {
         $memberData['profile_photo_private'] = false;
     }
     if (empty($memberData['password'])) {
         unset($memberData['password']);
     }
     $memberData['hash'] = str_random(30);
     $memberData['rules_agreed'] = $memberData['rules_agreed'] ? Carbon::now() : null;
     $user = $this->model->create($memberData);
     $this->profileDataRepository->createProfile($user->id);
     $this->addressRepository->saveUserAddress($user->id, $memberData['address'], $isAdminCreating);
     return $user;
 }