private static void populateModels(
    @NotNull BuildController controller,
    @NotNull GradleOpenTelemetry telemetry,
    @NotNull GradleModelConsumer modelConsumer,
    @NotNull Collection<? extends GradleBuild> gradleBuilds,
    @NotNull Collection<ProjectImportModelProvider> modelProviders
  ) {
    telemetry.runWithSpan("PopulateModels", __ -> {
      for (GradleBuild gradleBuild : gradleBuilds) {
        for (BasicGradleProject gradleProject : gradleBuild.getProjects()) {
          for (ProjectImportModelProvider modelProvider : modelProviders) {
            telemetry.runWithSpan(modelProvider.getName(), span -> {
              span.setAttribute("project-name", gradleProject.getName());
              span.setAttribute("build-name", gradleBuild.getBuildIdentifier().getRootDir().getName());
              span.setAttribute("model-type", "ProjectModel");
              modelProvider.populateProjectModels(controller, gradleProject, modelConsumer);
            });
          }
        }
        for (ProjectImportModelProvider modelProvider : modelProviders) {
          telemetry.runWithSpan(modelProvider.getName(), span -> {
            span.setAttribute("build-name", gradleBuild.getBuildIdentifier().getRootDir().getName());
            span.setAttribute("model-type", "BuildModel");
            modelProvider.populateBuildModels(controller, gradleBuild, modelConsumer);
          });
        }
      }
      for (ProjectImportModelProvider modelProvider : modelProviders) {
        telemetry.runWithSpan(modelProvider.getName(), span -> {
          span.setAttribute("model-type", "GradleModel");
          modelProvider.populateModels(controller, gradleBuilds, modelConsumer);
        });
      }
    });
  }
private static void populateModels(
    @NotNull BuildController controller,
    @NotNull GradleOpenTelemetry telemetry,
    @NotNull GradleModelConsumer modelConsumer,
    @NotNull Collection<? extends GradleBuild> gradleBuilds,
    @NotNull Collection<ProjectImportModelProvider> modelProviders
  )