public void registerPlugins() {
    checkState(
        state == Lifecycle.INITIALIZED,
        "Besu plugins have already been registered. Cannot register additional plugins.");
    state = Lifecycle.REGISTERING;

    if (config.isExternalPluginsEnabled()) {
      detectedPlugins = detectPlugins(config);

      if (config.getRequestedPlugins().isEmpty()) {
        // If no plugins were specified, register all detected plugins
        registerPlugins(detectedPlugins);
      } else {
        // Register only the plugins that were explicitly requested and validated
        requestedPlugins = config.getRequestedPlugins();
        // Match and validate the requested plugins against the detected plugins
        List<BesuPlugin> registeringPlugins =
            matchAndValidateRequestedPlugins(requestedPlugins, detectedPlugins);

        registerPlugins(registeringPlugins);
      }
    } else {
      LOG.debug("External plugins are disabled. Skipping plugins registration.");
    }
    state = Lifecycle.REGISTERED;
  }
Registers plugins based on the provided {@link PluginConfiguration}. This method finds plugins
according to the configuration settings, filters them if necessary and then registers the
filtered or found plugins

@throws IllegalStateException if the system is not in the UNINITIALIZED state.
app/src/main/java/org/hyperledger/besu/services/BesuPluginContextImpl.java