BP profit beats estimates as Iran war boosts oil prices above $120