Hot water last long time everywhere but in my shower?
Unless something is badly broken in your setup, the most effective fixes are (1) installing a flow restrictor, (2) increasing your water tank size, and (3) raising your water heater temperature.

You're probably just using up all the hot water in the tank. You can confirm this if you have a 5 gallon bucket (you can get one for a few bucks in my neighborhood big box store). Stick it under your shower head and see how long it takes to fill halfway. A modern shower head will take about a minute to fill 2.5 gallons, which if it's 80% hot water and 20% cold, means you're using 2 GPM hot water. If you have a smaller 40 gal tank, you have 20 minutes of shower. But if you had an older shower head (probably your case), it could have easily have twice the flow, meaning you have 10 minutes.

You can lengthen your shower using any of the suggested techniques, the easiest and most effective being replacing your shower head. In many places, your utility will give you a water-efficient shower head for free.

My bathroom sink is 1.2 GPM, and most are similar, which would give you 40 min hot water in the same setup.