public function handle($instance)
    {
        if ($instance instanceof Paginator) {
            return $instance->setCollection(
                $instance->getCollection()->transform($this)
            );
        } elseif ($instance instanceof Transformable || $instance instanceof BaseCollection) {
            $transformable = $instance;
        } elseif ($instance instanceof BaseFluent) {
            $transformable = new Fluent($instance->getAttributes());
        } else {
            throw new InvalidArgumentException("Unable to transform {get_class($instance)}.");
        }

        return $transformable->transform($this);
    }