code: protected function whereId($id, $operator)
      {
          /** If we are paging on the key, we only need one where clause. */
          if ($this->isPagingOnKey()) {
              $this->query->where($this->key, $operator, $id);
              return $this;
          }
  
          $value = $this->getColumnValue($id);
  
          $this->query->where(
              $this->column, $operator . '=', $value
          )->where(function ($query) use ($id, $value, $operator) {
              /** @var QueryBuilder $query */
              $query->where($this->column, $operator, $value)->orWhere($this->key, $operator, $id);
          });
  
          return $this;
      }
docs: Add a where clause for the supplied id and operator.
  
  If we are paging on the key, then we only need one where clause - i.e.
  on the key column.
  
  If we are paging on a column that is different than the key, we do not
  assume that the column is unique. Therefore we add where clauses for
  both the column plus then use the key column (which we expect to be
  unique) to differentiate between any items that have the same value for
  the non-unique column.
  
  @param $id
  @param $operator
  @return $this
  @see https://stackoverflow.com/questions/38017054/mysql-cursor-based-pagination-with-multiple-columns