diff --git a/.editorconfig b/.editorconfig
index 12bcb27e4ee7bbca7f74423a87d205926d2ad1d2..ccc6a281e51a2f99832b3c2d5b7b42b3ce84c36e 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -12,6 +12,3 @@ indent_size = 2
 charset = utf-8
 trim_trailing_whitespace = true
 insert_final_newline = true
-
-[{composer.json,composer.lock}]
-indent_size = 4
diff --git a/composer.json b/composer.json
index 6bf2b5b162bc045b6a5e5dc6059df47701264d7d..85d6bd3f3c7f454a7da02b369a7a9f67d03bc705 100644
--- a/composer.json
+++ b/composer.json
@@ -1,100 +1,98 @@
 {
-    "name": "lakedrops/drupal-development-environment",
-    "description": "Composer Plugin for Drupal Development Environments",
-    "type": "composer-plugin",
-    "keywords": [
-        "Drupal",
-        "Development",
-        "Install",
-        "Update"
-    ],
-    "homepage": "https://gitlab.lakedrops.com/composer/plugin/drupal-development-environment",
-    "license": "GPL-2.0-or-later",
-    "authors": [
-        {
-            "name": "Jürgen Haas",
-            "email": "juergen.haas@lakedrops.com",
-            "homepage": "https://www.lakedrops.com",
-            "role": "Drupal Expert"
-        },
-        {
-            "name": "Daniel Speicher",
-            "email": "daniel.speicher@lakedrops.com",
-            "homepage": "https://www.lakedrops.com",
-            "role": "Drupal Expert"
-        },
-        {
-            "name": "Richard Papp",
-            "email": "richard.papp@lakedrops.com",
-            "homepage": "https://www.lakedrops.com",
-            "role": "Drupal Expert"
-        }
-    ],
-    "support": {
-        "issues": "https://gitlab.lakedrops.com/composer/plugin/drupal-development-environment/issues",
-        "source": "https://gitlab.lakedrops.com/composer/plugin/drupal-development-environment/tree/main",
-        "docs": "https://devops-tools.docs.lakedrops.com/composer/plugin/drupal-dev-environment/"
+  "name": "lakedrops/drupal-development-environment",
+  "description": "Composer Plugin for Drupal Development Environments",
+  "type": "composer-plugin",
+  "keywords": [
+    "Drupal",
+    "Development",
+    "Install",
+    "Update"
+  ],
+  "homepage": "https://gitlab.lakedrops.com/composer/plugin/drupal-development-environment",
+  "license": "GPL-2.0-or-later",
+  "authors": [
+    {
+      "name": "Jürgen Haas",
+      "email": "juergen.haas@lakedrops.com",
+      "homepage": "https://www.lakedrops.com",
+      "role": "Drupal Expert"
     },
-    "repositories": [
-        {
-            "type": "composer",
-            "url": "https://packages.drupal.org/8"
-        }
-    ],
-    "require": {
-        "php": ">=7.4",
-        "composer-plugin-api": "^1||^2",
-        "dealerdirect/phpcodesniffer-composer-installer": "*",
-        "dpi/dogit": "*",
-        "drupal-code-builder/drupal-code-builder-drush": "*",
-        "drupal/coder": "*",
-        "drupal/core": "*",
-        "drupal/core-composer-scaffold": "*",
-        "drupal/devel": "*",
-        "drupal/webprofiler": "*",
-        "lakedrops/ahoy": "*",
-        "lakedrops/behat4drupal": "*",
-        "lakedrops/composer-json-utils": "*",
-        "lakedrops/docker4drupal": "*",
-        "lakedrops/dorgflow": "*",
-        "lakedrops/drupal-environment": "*",
-        "mglaman/phpstan-drupal": "*",
-        "mikey179/vfsstream": "*",
-        "php-parallel-lint/php-parallel-lint": "*",
-        "phpmd/phpmd": "*",
-        "phpmetrics/phpmetrics": "*",
-        "phpspec/prophecy": "*",
-        "phpspec/prophecy-phpunit": "*",
-        "phpstan/extension-installer": "*",
-        "phpstan/phpstan-deprecation-rules": "*",
-        "phpunit/phpunit": "*",
-        "squizlabs/php_codesniffer": "*",
-        "symfony/css-selector": "*",
-        "symfony/phpunit-bridge": "*"
+    {
+      "name": "Daniel Speicher",
+      "email": "daniel.speicher@lakedrops.com",
+      "homepage": "https://www.lakedrops.com",
+      "role": "Drupal Expert"
     },
-    "require-dev": {
-        "composer/composer": "^1||^2",
-        "roave/security-advisories": "dev-latest"
-    },
-    "minimum-stability": "dev",
-    "prefer-stable": true,
-    "autoload": {
-        "psr-4": {
-            "LakeDrops\\DrupalDevelopmentEnvironment\\": "src/"
-        }
-    },
-    "extra": {
-        "class": "LakeDrops\\DrupalDevelopmentEnvironment\\Plugin"
-    },
-    "config": {
-        "allow-plugins": {
-            "dealerdirect/phpcodesniffer-composer-installer": true,
-            "drupal/core-composer-scaffold": false,
-            "lakedrops/ahoy": false,
-            "lakedrops/behat4drupal": false,
-            "lakedrops/dorgflow": false,
-            "lakedrops/drupal-environment": false,
-            "lakedrops/docker4drupal": false
-        }
+    {
+      "name": "Richard Papp",
+      "email": "richard.papp@lakedrops.com",
+      "homepage": "https://www.lakedrops.com",
+      "role": "Drupal Expert"
+    }
+  ],
+  "support": {
+    "issues": "https://gitlab.lakedrops.com/composer/plugin/drupal-development-environment/issues",
+    "source": "https://gitlab.lakedrops.com/composer/plugin/drupal-development-environment/tree/main",
+    "docs": "https://devops-tools.docs.lakedrops.com/composer/plugin/drupal-dev-environment/"
+  },
+  "repositories": [
+    {
+      "type": "composer",
+      "url": "https://packages.drupal.org/8"
+    }
+  ],
+  "require": {
+    "php": ">=8.1",
+    "composer-plugin-api": "^2",
+    "dealerdirect/phpcodesniffer-composer-installer": "*",
+    "drupal-code-builder/drupal-code-builder-drush": "*",
+    "drupal/coder": "*",
+    "drupal/core": "*",
+    "drupal/core-composer-scaffold": "*",
+    "drupal/devel": "*",
+    "drupal/schema_diff": "*",
+    "drupal/webprofiler": "*",
+    "lakedrops/ahoy": "*",
+    "lakedrops/behat4drupal": "*",
+    "lakedrops/composer-json-utils": "*",
+    "lakedrops/docker4drupal": "*",
+    "lakedrops/dorgflow": "*",
+    "lakedrops/drupal-environment": "*",
+    "mglaman/phpstan-drupal": "*",
+    "mikey179/vfsstream": "*",
+    "php-parallel-lint/php-parallel-lint": "*",
+    "phpmd/phpmd": "*",
+    "phpmetrics/phpmetrics": "^2.8",
+    "phpspec/prophecy": "*",
+    "phpspec/prophecy-phpunit": "*",
+    "phpstan/extension-installer": "*",
+    "phpstan/phpstan-deprecation-rules": "*",
+    "phpunit/phpunit": "*",
+    "squizlabs/php_codesniffer": "*",
+    "symfony/css-selector": "*",
+    "symfony/phpunit-bridge": "*"
+  },
+  "require-dev": {
+    "composer/composer": "^2",
+    "roave/security-advisories": "dev-latest"
+  },
+  "minimum-stability": "dev",
+  "prefer-stable": true,
+  "autoload": {
+    "psr-4": {
+      "LakeDrops\\DrupalDevelopmentEnvironment\\": "src/"
+    }
+  },
+  "extra": {
+    "class": "LakeDrops\\DrupalDevelopmentEnvironment\\Plugin"
+  },
+  "config": {
+    "allow-plugins": {
+      "dealerdirect/phpcodesniffer-composer-installer": true,
+      "drupal/core-composer-scaffold": false,
+      "lakedrops/*": false,
+      "php-http/discovery": false,
+      "phpstan/extension-installer": true
     }
+  }
 }
diff --git a/src/CommandProvider.php b/src/CommandProvider.php
index 1d22be7df736f6a6cd42fa382b7fd6264544020f..aacd5fcd4e95585e27b67c02c371148346e76f4f 100644
--- a/src/CommandProvider.php
+++ b/src/CommandProvider.php
@@ -5,7 +5,7 @@ namespace LakeDrops\DrupalDevelopmentEnvironment;
 use Composer\Plugin\Capability\CommandProvider as CommandProviderCapability;
 
 /**
- * Class CommandProvider.
+ * Composer Command Provider for LakeDrops drupal development environments.
  *
  * @package LakeDrops\DrupalDevelopmentEnvironment
  */
diff --git a/src/Handler.php b/src/Handler.php
index 009ebef76ca747d38dc2e01ec35472ce655de910..ae127cc7645255560edcbde856fac4632313b08c 100644
--- a/src/Handler.php
+++ b/src/Handler.php
@@ -2,14 +2,13 @@
 
 namespace LakeDrops\DrupalDevelopmentEnvironment;
 
-use Exception;
 use LakeDrops\Component\Composer\BaseHandler;
 use LakeDrops\Docker4Drupal\Handler as D4D;
 use LakeDrops\DrupalEnvironment\Handler as DrupalEnvironment;
 use Symfony\Component\Filesystem\Filesystem;
 
 /**
- * Class Handler.
+ * Handler class to setup LakeDrops tool based Drupal development environments.
  *
  * @package LakeDrops\Drupal8ScaffoldDeveloper
  */
@@ -27,8 +26,14 @@ class Handler extends BaseHandler {
    */
   protected function configDefault(): array {
     $config = (new D4D($this->composer, $this->io))->getConfig();
-    $domain = $config->readValue('projectname') . '.' . $config->readValue(['traefik', 'domain']);
-    if (!$config->readValue(['traefik', 'usessl']) && $config->readValue(['traefik', 'port']) !== '80') {
+    $domain = $config->readValue('projectname') . '.' . $config->readValue([
+      'traefik',
+      'domain',
+    ]);
+    if (!$config->readValue([
+      'traefik',
+      'usessl',
+    ]) && $config->readValue(['traefik', 'port']) !== '80') {
       $domain .= ':' . $config->readValue(['traefik', 'port']);
     }
     return [
@@ -53,6 +58,9 @@ class Handler extends BaseHandler {
     $installationManager = $this->composer->getInstallationManager();
 
     $drupalCorePackage = $this->getDrupalCorePackage();
+    if ($drupalCorePackage === NULL) {
+      return;
+    }
     $corePath = $installationManager->getInstallPath($drupalCorePackage);
 
     // Directory where the root project is being created.
@@ -64,10 +72,10 @@ class Handler extends BaseHandler {
 
     // Create contrib/custom dirs for modules, profiles and themes.
     foreach ([
-               $webRoot . '/modules',
-               $webRoot . '/profiles',
-               $webRoot . '/themes',
-             ] as $dir) {
+      $webRoot . '/modules',
+      $webRoot . '/profiles',
+      $webRoot . '/themes',
+    ] as $dir) {
       foreach (['contrib', 'custom'] as $subdir) {
         $path = $dir . '/' . $subdir;
         if (!$fs->exists($path)) {
@@ -81,9 +89,9 @@ class Handler extends BaseHandler {
 
     // Create and protect config, settings and files directories.
     foreach ([
-               'config/default/sync',
-               'tests',
-             ] as $dir) {
+      'config/default/sync',
+      'tests',
+    ] as $dir) {
       $path = $projectRoot . '/' . $dir;
       if (!$fs->exists($path)) {
         $fs->mkdir($path);
@@ -110,7 +118,7 @@ class Handler extends BaseHandler {
         $this->git('add *');
         $this->git('commit -m "Initial commit"');
       }
-      catch (Exception $ex) {
+      catch (\Exception) {
         // We're ignoring this for now.
       }
     }
diff --git a/src/Plugin.php b/src/Plugin.php
index ecbee41118bc2df3e4a03f20298e5cb2043f28e0..e88a62b55be74b19fcedf364908d0ef717a62ca9 100644
--- a/src/Plugin.php
+++ b/src/Plugin.php
@@ -20,7 +20,7 @@ class Plugin extends BasePlugin {
    *
    * @var \Drupal\Composer\Plugin\Scaffold\Handler
    */
-  protected $scaffoldHandler;
+  protected DrupalScaffoldHandler $scaffoldHandler;
 
   /**
    * {@inheritdoc}
diff --git a/src/ScaffoldCommand.php b/src/ScaffoldCommand.php
index 1a48775cdb004a2ae1919d820dcc243922a1f961..dd5243826cfda4a03d135252e79f9e62676fcda4 100644
--- a/src/ScaffoldCommand.php
+++ b/src/ScaffoldCommand.php
@@ -7,7 +7,7 @@ use Symfony\Component\Console\Input\InputInterface;
 use Symfony\Component\Console\Output\OutputInterface;
 
 /**
- * Class ScaffoldCommand.
+ * Composer Scaffold Command for LakeDrops Drupal development environments.
  *
  * @package LakeDrops\DrupalDevelopmentEnvironment
  */