я бы тут делал что-то в формате src -> Purchase (здесь Order и Payment, их контроллеры (отдельно в папке Controller), фабрики\сервисы (отдельно в папке Service) и сущности с VO(отдельно в папке Entity)) Product (аналогично) Console ORM HTTP (и там Responder)
миграцию вынес бы из src отдельно (как это сделано в симфони)