public function create(Requests\ApplyForLeaveRequest $request)
 {
     $params = $request->all();
     $response = new ResponseEntity();
     try {
         DB::transaction(function () use(&$response, $params) {
             $application = new LeaveApplication();
             $application->purpose = $params['purpose'];
             $application->no_of_days = $params['no_of_days'];
             $application->leave_type_id = $params['leave_type_id'];
             $application->employee_id = $this->employeeId;
             $application->date_filed = Carbon::now()->toDateString();
             $application->created_by_user_id = $this->userId;
             $a = $application->save();
             if ($a) {
                 $dates = $params['dates'];
                 if (is_array($dates) && count($dates) > 0) {
                     foreach ($dates as $d) {
                         // e.g. : 01/26/2016 - 01/26/2016
                         $dArr = explode(' - ', $d);
                         $lad = new LeaveApplicationDetails();
                         $lad->date_from = Carbon::createFromFormat('m/d/Y', $dArr[0])->toDateString();
                         $lad->date_to = Carbon::createFromFormat('m/d/Y', $dArr[1])->toDateString();
                         $lad->leave_application_id = $application->id;
                         $lad->save();
                     }
                 }
                 $response->setMessages(['Leave application successfully saved!']);
                 $response->setSuccess(true);
             } else {
                 $response->setMessages(['Failed to process leave application!']);
             }
         });
     } catch (\Exception $ex) {
         $response->setMessages(['Exception: ' . $ex->getMessage()]);
     }
     return $response->toArray();
 }