code: public static function init(
          array $directories,
          EnvironmentInterface $environment = null,
          bool $handleErrors = true
      ): ?self {
          if ($handleErrors) {
              ExceptionHandler::register();
          }
  
          $core = new static(new Container(), $directories);
          $core->container->bindSingleton(
              EnvironmentInterface::class,
              $environment ?? new Environment()
          );
  
          try {
              ContainerScope::runScope($core->container, function () use ($core) {
                  $core->bootload();
                  $core->bootstrap();
              });
          } catch (\Throwable $e) {
              ExceptionHandler::handleException($e);
  
              return null;
          }
  
          return $core;
      }
docs: Initiate application core.
  
  @param array                     $directories  Spiral directories should include root,
  libraries and application directories.
  @param EnvironmentInterface|null $environment  Application specific environment if any.
  @param bool                      $handleErrors Enable global error handling.
  @return self|static