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];
 }