public function quickAddFriend(Request $request, AppMailer $mailer) { $this->validate($request, ['email' => 'required|email', 'name' => 'required']); $input = $request->all(); $users = User::whereEmail($input['email']); $friends = \Auth::user()->friends(); $userAdded = null; $userStatus = 1; //For jquery to take appropriate action $message = ""; //If user exists in the system if ($users->count() > 0) { $userAdded = $users->first(); if ($userAdded->email == \Auth::user()->email) { return [$userAdded, 0, "You cannot add yourself as a friend!"]; } if ($friends->find($userAdded['id']) == null) { $friends->attach($userAdded); $message = $userAdded->name . " (" . $userAdded->email . ") already exists in the system and has been added as your friend!"; } else { $message = $userAdded->name . " (" . $userAdded->email . ") is already a friend!"; $userStatus = 0; //For jquery to take appropriate action (do nothing in this case) } } else { $input['password'] = str_random(8); $userAdded = User::create($input); $mailer->sendEmailInvitation(\Auth::user(), $userAdded); $friends->attach($userAdded); $message = $userAdded->name . " has been added as your friend and sent an invitation to join."; $userStatus = 3; } return [$userAdded, $userStatus, $message]; }