private function buildLayoutTypes(ContainerBuilder $container, array $layoutTypes): Generator
    {
        foreach ($layoutTypes as $identifier => $layoutType) {
            $serviceIdentifier = sprintf('netgen_block_manager.layout.layout_type.%s', $identifier);

            $container->register($serviceIdentifier, LayoutType::class)
                ->setArguments([$identifier, $layoutType])
                ->setLazy(true)
                ->setPublic(true)
                ->setFactory([LayoutTypeFactory::class, 'buildLayoutType']);

            yield $identifier => new Reference($serviceIdentifier);
        }
    }