code: public function chunk($size, $preserveKeys = false)
      {
          $create = function ($items) {
              return $this->createFrom($items);
          };
  
          return $this->createFrom(array_map($create, array_chunk($this->items, $size, $preserveKeys)));
      }
docs: Returns a bag with the items split into chunks.
  
  The last chunk may contain less items.
  
  Example:
  
  Bag::from([1, 2, 3, 4, 5])
  ->chunk(2);
  // => Bag of [Bag of [1, 2], Bag of [3, 4], Bag of [5]]
  
  @param int  $size         The size of each chunk
  @param bool $preserveKeys When set to TRUE keys will be preserved. Default is FALSE which will reindex
  the chunk numerically.
  
  @return static|static[] Returns a multidimensional bag, with each dimension containing $size items