Trump cancels attack on Iran