return_url не означает payment.succeeded
Возврат пользователя в интерфейс сообщает только о переходе пользователя.
Он не подтверждает, что платёж успешно завершён.
В синтетическом учебном кейсе заказ можно перевести в paid только после валидированного события payment.succeeded. pending, processing и succeeded остаются разными состояниями.
Какое событие в вашей системе действительно имеет право изменить состояние бизнес-объекта?