/**
  * Update contract status
  * @param         $contract_id
  * @param Request $request
  * @param Guard   $auth
  * @return Response
  */
 public function updateStatus($contract_id, Request $request, Guard $auth)
 {
     $status = trim(strtolower($request->input('state')));
     $permission = ['completed' => 'complete', 'rejected' => 'reject', 'published' => 'publish'];
     if (!$auth->user()->can(sprintf('%s-metadata', $permission[$status]))) {
         return back()->withError(trans('contract.permission_denied'));
     }
     if ($this->contract->updateStatus($contract_id, $status, $request->input('type'))) {
         return back()->withSuccess(trans('contract.status_update'));
     }
     return back()->withError(trans('contract.invalid_status'));
 }