/**
  * Moves the item to the new position, adjusting all queued element's positions
  * in between
  *
  * @param ReferQueue $item
  * @param $new_pos
  */
 public function move(ReferQueue $item, $new_pos)
 {
     if ($item->position == $new_pos) {
         return;
     }
     $old_pos = $item->position;
     $item->position = -1;
     $item->save();
     if ($new_pos < $old_pos) {
         ReferQueue::where('position', '>=', $new_pos)->where('position', '<', $old_pos)->orderBy('position', 'desc')->update(['position' => \DB::raw('`position` + 1')]);
     } else {
         ReferQueue::where('position', '<=', $new_pos)->where('position', '>', $old_pos)->orderBy('position', 'asc')->update(['position' => \DB::raw('`position` - 1')]);
     }
     $item->position = $new_pos;
     $item->save();
 }