As you might know, I have been using Upwork for more than 6 years now, starting as a freelancer, and now running my own agency with my team.
I frequently post tutorial videos on Youtube mainly for my team and someone recently posted a question on one of my videos on Youtube (below) asking me how to ensure that they get paid on Upwork. She mentioned that she had finished a recent project for a client and never got paid. I answered her that it would depend on what kind of contract you are going for.
For fixed contracts, one should always make sure the client adds each milestone in advance and preferably even funds that milestone before you begin to work on the step related to the milestone, and don’t work on additional steps not included in the payment within the milestone (preferably). Having the client add several milestones in advance and fund them is a good way to be more efficient and fast in your work and not have to worry about asking the client to add a milestone after each completed task and waiting on them to do so.
For hourly contracts, you will only get paid if you use the time tracker properly, that means logging time through it the normal way and making sure you are using your maximum amount of keystrokes and mouse clicks while doing so so that in case of a dispute, the Upwork resolution center doesn’t refund the client on the hours where they deem you unproductive (they measure this mainly by a low number of keystrokes and mouse clicks from what I have experienced).
Hope this helps!