diff --git a/automatic_updates_extensions/automatic_updates_extensions.services.yml b/automatic_updates_extensions/automatic_updates_extensions.services.yml
index 12e84a9ade7d6fe6ec48794d3977b4beb0452f50..21e95bc99167a73d703f348278894ef7d48ef708 100644
--- a/automatic_updates_extensions/automatic_updates_extensions.services.yml
+++ b/automatic_updates_extensions/automatic_updates_extensions.services.yml
@@ -2,6 +2,7 @@ services:
   automatic_updates_extensions.updater:
     class: Drupal\automatic_updates_extensions\ExtensionUpdater
     arguments:
+      - '@package_manager.composer_inspector'
       - '@package_manager.path_locator'
       - '@package_manager.beginner'
       - '@package_manager.stager'
diff --git a/automatic_updates_extensions/src/ExtensionUpdater.php b/automatic_updates_extensions/src/ExtensionUpdater.php
index 7cae2d5fcd169529e7fb880b57a87bfd41f1f187..fc3813f67fb2898f7c0a78c344173d6198be7c8c 100644
--- a/automatic_updates_extensions/src/ExtensionUpdater.php
+++ b/automatic_updates_extensions/src/ExtensionUpdater.php
@@ -5,6 +5,7 @@ declare(strict_types = 1);
 namespace Drupal\automatic_updates_extensions;
 
 use Drupal\Core\StringTranslation\TranslatableMarkup;
+use Drupal\package_manager\ComposerInspector;
 use Drupal\package_manager\LegacyVersionUtility;
 use Drupal\package_manager\Stage;
 
@@ -17,6 +18,18 @@ use Drupal\package_manager\Stage;
  */
 class ExtensionUpdater extends Stage {
 
+  /**
+   * Constructs a new ExtensionUpdater object.
+   *
+   * @param \Drupal\package_manager\ComposerInspector $composerInspector
+   *   The Composer inspector service.
+   * @param mixed ...$arguments
+   *   Additional arguments to pass to the parent constructor.
+   */
+  public function __construct(protected ComposerInspector $composerInspector, mixed ...$arguments) {
+    parent::__construct(...$arguments);
+  }
+
   /**
    * Begins the update.
    *
@@ -33,29 +46,27 @@ class ExtensionUpdater extends Stage {
     if (empty($project_versions)) {
       throw new \InvalidArgumentException("No projects to begin the update");
     }
-    $composer = $this->getActiveComposer();
     $package_versions = [
       'production' => [],
       'dev' => [],
     ];
 
-    $require_dev = $composer->getComposer()
-      ->getPackage()
-      ->getDevRequires();
-    $installed_packages = $composer->getInstalledPackages();
+    $project_root = $this->pathLocator->getProjectRoot();
+    $info = $this->composerInspector->getRootPackageInfo($project_root);
+    $installed_packages = $this->composerInspector->getInstalledPackagesList($project_root);
     foreach ($project_versions as $project_name => $version) {
-      $package = $composer->getPackageForProject($project_name);
+      $package = $installed_packages->getPackageByDrupalProjectName($project_name);
       if (empty($package)) {
         throw new \InvalidArgumentException("The project $project_name is not a Drupal project known to Composer and cannot be updated.");
       }
 
       // We don't support updating install profiles.
-      if ($installed_packages[$package]->getType() === 'drupal-profile') {
+      if ($package->type === 'drupal-profile') {
         throw new \InvalidArgumentException("The project $project_name cannot be updated because updating install profiles is not supported.");
       }
 
-      $group = array_key_exists($package, $require_dev) ? 'dev' : 'production';
-      $package_versions[$group][$package] = LegacyVersionUtility::convertToSemanticVersion($version);
+      $group = isset($info['devRequires'][$package->name]) ? 'dev' : 'production';
+      $package_versions[$group][$package->name] = LegacyVersionUtility::convertToSemanticVersion($version);
     }
 
     // Ensure that package versions are available to pre-create event