public Iterable<PendingTransaction> transactionsToProcess(
      final PendingTransaction nextTransactionInPriorityOrder) {
    deferredTransactions.add(nextTransactionInPriorityOrder);
    final List<PendingTransaction> transactionsToApply = new ArrayList<>();
    while (!deferredTransactions.isEmpty()
        && !transactionsForSender.isEmpty()
        && deferredTransactions.first().equals(transactionsForSender.first())) {
      final PendingTransaction transaction = deferredTransactions.first();
      transactionsToApply.add(transaction);
      deferredTransactions.remove(transaction);
      transactionsForSender.remove(transaction);
    }
    return transactionsToApply;
  }
Determine the transactions from this sender that are able to be processed given that <code>
nextTransactionInPriorityOrder</code> has been reached in the normal priority order.

<p>Transactions may be deferred from their place in normal priority order if the sender has
other transactions in the pool with lower nonces. Deferred transactions are delayed until the
transactions preceding them are reached.

@param nextTransactionInPriorityOrder the next transaction to be processed in normal priority
    order. Must be from the sender this instance is ordering.
@return the transactions from this sender that are now due to be processed, in order.
ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/transactions/sorter/AccountTransactionOrder.java