code: public static function create($from)
      {
          return new self([
              'where' => $from->where,
              'limit' => $from->limit,
              'offset' => $from->offset,
              'orderBy' => $from->orderBy,
              'indexBy' => $from->indexBy,
              'select' => $from->select,
              'selectOption' => $from->selectOption,
              'distinct' => $from->distinct,
              'from' => $from->from,
              'groupBy' => $from->groupBy,
              'join' => $from->join,
              'having' => $from->having,
              'union' => $from->union,
              'params' => $from->params,
          ]);
      }
docs: Creates a new Query object and copies its property values from an existing one.
  The properties being copies are the ones to be used by query builders.
  @param Query $from the source query object
  @return Query the new Query object