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