private function operating($target, $type, $method)
 {
     $targetObject = $type == User::INVOLVED_WORK_ORDER ? WorkOrder::findOrFail($target) : Group::findOrFail($target);
     $operator = \Auth::user()->involvements($type);
     if ($method) {
         $operator->attach($targetObject->id);
     } else {
         $operator->detach($targetObject->id);
     }
     if (\Request::ajax()) {
         return response()->json(['body' => 'success']);
     }
     return redirect()->back();
 }
 public function store(Request $request, $id)
 {
     $validator = \Validator::make($request->all(), ['content' => 'required']);
     if ($validator->fails()) {
         return redirect()->back()->withErrors($validator->errors());
     }
     return \DB::transaction(function () use($id, $request) {
         $workOrder = WorkOrder::findOrFail($id);
         $message = new WorkOrderMessage();
         $message->content = $request->input('content');
         $message->workOrder()->associate($workOrder);
         $message->publisher()->associate(\Auth::user());
         $message->save();
         if ($request->ajax()) {
             return response()->json(['body' => $message->id]);
         }
         return redirect()->back()->with('create-success', 'work-order-message');
     });
 }
 /**
  * Update the specified resource in storage.
  *
  * @param  \Illuminate\Http\Request $request
  * @param  int                      $id
  *
  * @return \Illuminate\Http\Response
  */
 public function update(Request $request, $id)
 {
     $workOrder = WorkOrder::findOrFail($id);
     if ($workOrder->status != 0 && $workOrder->status != 3) {
         if (in_array($status = $request->input('status', -1), [0, 1, 2, 3])) {
             $workOrder->status = $status;
             $workOrder->save();
         }
     }
     return response()->json(['body' => 'success']);
 }