US President Donald Trump has called off a major attack in Iran, claiming progress is being made in talks.