getQuery(); // chaperone/inverse is not supported! } if ($builder instanceof Relation) { throw new \RuntimeException(get_class($builder) . ' cannot be packed.'); } $package = $this->pack($builder); return serialize($package); // important! } /** * Unpack * * @param mixed $package * @throws \LogicException * @return \Illuminate\Database\Eloquent\Builder */ public function unserialize($package): \Illuminate\Database\Eloquent\Builder { // Prepare data if (is_string($package)) { $package = unserialize($package); } if (! ($package instanceof Package)) { throw new \LogicException('Incorrect argument.'); } // Unpack return $this->unpack($package); } }