public function emailAuth(Request $request, $slug) { try { $this->validate($request, ['email' => 'required|email']); $stack = Stack::where('slug', '=', $slug)->firstOrFail(); $stackMember = StackMember::where('stack_id', '=', $stack->id)->where('email', '=', $request->input('email'))->first(); if (!$stackMember) { $validSignupIp = $this->validSignupIp($request, $stack); $stackMember = new StackMember(); $stackMember->email = $request->input('email'); $stackMember->referral_token = $this->generateRandomToken($stack->id); $stackMember->is_valid_signup_ip = $validSignupIp; $stackMember->ip = $request->getClientIp(); $stackMember->stack_id = $stack->id; if ($request->session()->get('referral_user')) { $stackMember->referred_by = $request->session()->get('referral_user'); } $stackMember->save(); } Event::fire(new StackMemberSignedUp($stackMember)); return redirect('member/' . $stackMember->referral_token); } catch (Exeption $e) { return redirect()->back()->withInput()->withErrors($e); } }