private PluginBlockSimulationResult response(final BlockSimulationResult result) {
    return new PluginBlockSimulationResult(
        result.getBlockHeader(),
        result.getBlockBody(),
        result.getReceipts(),
        result.getTransactionSimulations().stream()
            .map(
                simulation ->
                    new TransactionSimulationResult(simulation.transaction(), simulation.result()))
            .toList());
  }
This method is experimental and should be used with caution. Simulate the processing of a block
given a header, a list of transactions, and blockOverrides and persist the WorldState

@param blockNumber the block number
@param transactions the transactions to include in the block
@param blockOverrides block overrides for the block
@param stateOverrides state overrides of the block
@return the PluginBlockSimulationResult
app/src/main/java/org/hyperledger/besu/services/BlockSimulatorServiceImpl.java