Events in JSON konvertieren

class MySubscriber implements EventSubscriberInterface
{
    public static function getSubscribedEvents(): array
    {
        // Return the events to listen to as array like this: => 
        return [
            'state_enter.order_transaction.state.paid' => 'doMagic'
        ];
    }

    public function doMagic(OrderStateMachineStateChangeEvent $event)
    {
			$url = 'https://example.com/webhooks';

			$fields = array(
							'order_number'=> $event->getOrder()->getOrderNumber()
			);

			$postvars='';
			$sep='';
			foreach($fields as $key=>$value)
			{
							$postvars.= $sep.urlencode($key).'='.urlencode($value);
							$sep='&';
			}

			$ch = curl_init();

			curl_setopt($ch,CURLOPT_URL,$url);
			curl_setopt($ch,CURLOPT_POST,count($fields));
			curl_setopt($ch,CURLOPT_POSTFIELDS,$postvars);
			curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);

			$result = curl_exec($ch);

			curl_close($ch);
    }
}

Hallo,

gibt es eine Möglichkeit wie ich das ganze Event als JSON Objekt in einem POST Request schicken kann? Oder muss ich mir jede einzelne Property (z.B. wie oben order_number) manuell raussuchen und an fields anhängen? Es muss doch bestimmt gehen Events zu JSON zu konvertieren, nur habe ich bisher nichts dazu gefunden.

Vielen Dank schon mal im Vorraus!