Updates der CustomFields in OrderTransactions

Liebe Community,

wir schreiben ein Plugin, das in das Event state_enter.order_transaction.state.paid eingeklingt ist. Wenn PayPal nun eine Transaktion macht, greifen wir die OrderTransaction und deren CustomFields ab, um an die swag_paypal_resource_id zu kommen.

Nur exisitiert diese zum Zeitpunkt des Events noch nicht, sondern kommt einige Sekunden später durch ein Update der OrderTransaction rein.

Was kann ich tun, um direkt nach einer Bestellung nun die PayPal Resource ID abzugreifen?

Gibt es vielleicht ein anderes Event, das hier besser wäre?

Hier der verkürzte Code, um den es geht:

class OrderTransactionStatePaidListener implements EventSubscriberInterface
{
    public static function getSubscribedEvents(): array
    {
        return [
            'state_enter.order_transaction.state.paid' => 'onOrderTransactionStatePaid',
        ];
    }

    public function onOrderTransactionStatePaid(OrderStateMachineStateChangeEvent $event): void
    {
        // We do not get all associations within the event so we need
        // to make our own request to get missed data
        $order = $this->getOrder($event->getOrder()->getId(), $event->getContext());
        $orderTransaction = $order->getTransactions()->first();

        if (strpos($orderTransaction->getPaymentMethod()->getHandlerIdentifier(), 'PayPal') !== false) {
            $customFields   = $orderTransaction->getCustomFields();
            // PayPal Resource ID gibt es zu diesem Zeitpunkt noch nicht :(
            $transactionkey = (array_key_exists('swag_paypal_resource_id', $customFields)) ? $customFields['swag_paypal_resource_id'] : '';
        }
}

Liebe Grüße
Sebastian