В тексте ошибки говорится о том, что проблема в том, что вы вызываете метод setJson (Call to a member function setJson()) не у объекта Delivery, а у массива (on array)
1. Смена аргументов функции, логично, ничего не даст
2. Ошибка не в том куске кода, что вы нам показали
3. Ни Symfony, ни Doctrine тут тоже не при чем
Вы же понимаете, что Symfony - это не CMS? Вариантов сделать это - тысячи. Какой из них выбран в вашем проекте - мы не знаем поэтому помощь будет максимально абстрактной: посмотреть как сделан вариант с действием "Удалить" и сделать аналогично
Можно перенести после вызова родительского метода, но это переопределит поле.
Если надо использовать все опции из дочернего поля и переопределить только конкретные (array_merge) - то только эвенты.