Per API Lieferstatus einer Bestellung ändern

Mein bisheriger Code funktioniert nur für trackingCodes, nicht aber für den Lieferstatus:

$statesShipped = $api->get('/api/v1/state-machine-state?filter[technicalName]=shipped');
$shippedStateId = $statesShipped->data[0]->id ?? null;

$deliv = $api->get('/api/v1/order-delivery?filter[orderId]=xyz');
foreach($deliv->data as $d) {
    $api->patch('/api/v1/order-delivery/'.$d->id,
        [
            'trackingCodes' => ['helloFoo12345'],
            //'stateId' => $shippedStateId <= "This field is write protected"
            //'relationships.stateMachineState.id' => $shippedStateId <= funzt auch nicht
            'relationships'=>['stateMachineState'=>['id' => $shippedStateId]]
        ]);
}