public function createConversation($sender_id, $data) { try { $receiver_id = $data['receiver_id']; $content = $data['message']; $conversation = new Conversation(); $conversation->sender_id = $sender_id; $conversation->receiver_id = $receiver_id; $conversation->parent_conversation_id = $data['parent_conversation_id'] > 0 ? $data['parent_conversation_id'] : 0; $conversation->message = $content; if ($conversation->save()) { $sender = $this->user_service->getUserById($sender_id); $receiver = $this->user_service->getUserById($receiver_id); $send_from = $this->user_service->userHasCompany($sender_id) ? $sender['company']['name'] : $sender['first_name'] . ' ' . $sender['last_name']; $send_to = $this->user_service->userHasCompany($receiver_id) ? $receiver['company']['name'] : $receiver['first_name'] . ' ' . $receiver['last_name']; $email = $receiver['email']; $data = ['name' => $send_to, 'from' => $send_from, 'content' => $content, 'account_type' => $this->user_service->userHasCompany($sender_id) ? 'user' : 'company']; Mail::queue('worklemon.email.messages', $data, function ($message) use($email, $send_from, $send_to) { $message->to($email, $send_to); $message->subject('Message from ' . $send_from); $message->priority(1); }); return $conversation->toArray(); } return []; } catch (Exception $e) { return Response::json(['error' => $e->getMessage()]); } }