It was the horses and north European deforestation that changed everything. Roman horse got bigger, barbarians were burning pine forests north of Rome thus creating paved roads. By 3-4 century horse breeds got bigger and could haul a serious load of goods. Costs of trade over sea met the costs of land trade at the end of Roman empire, suddenly Mediterranean trade routes were obsolete and hinterland area changed.
Constantinople was now a main trade hub, because the silk road was getting busier and land trade replaced Red Sea route.
Also, Saint Bernard pass opened for trade connecting England, Normand and Venice by land. The horse killed the Rome. Before the horse and European deforestation, trade over land was about 6x more costly than sea trade, Rome was a weighted centre of Mediterranean sea, a natural port and a natural centre of the world (trade area) at the time, an unmatched comparative advantage. Alps made the peninsula almost unassailable. Although Carthage had a very good central Mediterranean position, Carthage hinterland couldn’t measure up to Rome and its access to wood and stone. Carthage had no chance.
it was always all about the money.