/**
  *
  * @param $payer_email
  * @param $description
  * @param $rate
  * @return Project
  */
 public function createProject($payer_email, $description, $rate)
 {
     $project = new Project(['description' => $description, 'rate_per_hour' => $rate]);
     // @TODO Check if the user was added as payer before!! :)
     $payer = User::whereEmail($payer_email)->firstOrFail();
     $payee = Auth::user();
     $project->payer()->associate($payer);
     $project->payee()->associate($payee);
     $project->save();
     //Pusher
     $pusher = new Pusher(env('PUSHER_PUBLIC_KEY'), env('PUSHER_SECRET_KEY'), env('PUSHER_APP_ID'));
     $data = ['payee_id' => Auth::user()->id, 'payer_id' => $payer->id, 'project' => $project, 'message' => Auth::user()->name . ' would like to start a new project with you, with the description \'' . $project->description . ',\' and at $' . $rate . '/hour. Is this ok?'];
     $pusher->trigger('channel', 'insertProject', $data);
     return $project;
 }