public function generate(Exporter $exporter, array $data = [])
    {
        $result = (new DataBuilderManager())->validateRaw($exporter->data_builder, $data);

        if (!$result->ok()) {
            return $result;
        }

        // We assume this class exists.
        $className = $exporter->class_name;

        if (!class_exists($className)) {
            throw new \Exception();
        }

        dispatch(new $className($exporter, $data, $this->getAgent()));

        return $result;
    }