/**
  * Store a new user from the main referral page
  *
  */
 public function store(CreateUserRequest $request)
 {
     $ip_address = $this->ip_address->firstOrCreate(['address' => $request->ip()]);
     if (!$ip_address->incrementSaveAndCheck()) {
         flash()->error('It appears that you have registered with too many emails.');
         return redirect()->route('user.create');
     }
     $input = $request->all();
     $user = $this->user->create($input);
     $referrer_code = Session::get(Config::get('prelaunch.session:referrer'));
     if ($referrer_code) {
         $referrer = User::whereReferralCode($referrer_code)->first();
         if ($referrer) {
             $user->referrer_code = $referrer_code;
             $user->referrer_id = $referrer->id;
             $user->save();
         }
     }
     flash()->success('Thanks for registering!  A confirmation link was sent to you.  You must confirm your email address in order to start receiving rewards for your referrals.  Check your spam folder if you don\'t immediately see the email.');
     return redirect()->route('user.status', [$user->referral_secret]);
 }