public function signup(SignupRequest $request) { $email = $request->input('email'); if (!$this->checkEmail($email)) { return redirect()->back()->withInput()->with('error', "{$email} is not a valid email"); } if ($request->input('salted_id')) { $originalEmail = Email::where('salted_id', '=', $request->input('salted_id'))->first(); } $first_name = $request->input('first_name'); $last_name = $request->input('last_name'); $phone = $request->input('phone'); $campaign = Campaign::find($request->input('campaign')); $contact = Contact::firstOrCreate(['email' => $email, 'client_id' => $campaign->client->id]); if ($first_name) { $contact->first_name = $first_name; } if ($last_name) { $contact->last_name = $last_name; } if ($phone) { $contact->phone = $phone; } $contact->save(); Action::firstOrCreate(['action' => 'signed up', 'contact_id' => $contact->id, 'campaign_id' => $campaign->id]); Signup::firstOrCreate(['contact_id' => $contact->id, 'campaign_id' => $campaign->id]); return redirect()->back()->with('message', "Thanks for signing up {$first_name}!"); }