Execute an installer after I copy it

I am a bit new to puppet so there may be something basic I am missing.
Task 1 - I was able to write a class that copies an installer from my puppet master to the agent machines.
Task 2 - I was able to write an exec that will run and installer that exist on an agent machine.
The thing is this - the copying of the file takes some time (a couple of minutes). How do I make sure my exec (task 2) runs only after the installer in task 1 finished getting copied to my agent machine?