public function save(Request $request, $territoryId = null) { if (!$this->hasAccess($request)) { return Response()->json(['error' => 'Access denied.'], 500); } if (Gate::denies('update-territories')) { return Response()->json(['error' => 'Method not allowed'], 403); } if (!empty($territoryId)) { // dd($this->unTransform($request->all(), 'territory')); try { $territory = Territory::findOrFail($territoryId); $currentPublisherId = $territory->publisher_id; $data = $territory->update($this->unTransform($request->all(), 'territory')); // Add a Record entry if (array_key_exists('publisherId', $request->all())) { if ($request->input('publisherId') === null || $request->input('publisherId') === 'null') { Record::checkIn($territoryId, $currentPublisherId, $request->input('date')); } else { Record::checkOut($territoryId, $request->input('publisherId'), $request->input('date')); } } } catch (Exception $e) { $data = ['error' => 'Territory not updated', 'message' => $e->getMessage()]; } } return ['data' => $data]; }