Time Tracking Task Status

i’m looking for a way to track time (using time/date stamps) on status change. Goal is to see how long a task was in each stage (Open, Work in Progress, Approval, Done). The Date/Time should be tracked when the status is changed. Is there a way/script to do this? Other ideas on how to achieve this are highly appreciated as well!
Thank you,

I don’t see any other solution than to build a custom dev for this… Tell me if you need any help and if no one has a better idea.