Creaking was fixed by cleaning out, eventually replacing, the lower headset bearing. It was literally stuck. The first attempt was to clean it. When i took it out it didn't turn very well at all. I had to use a hammer to tap the bearing housing in their places. After riding it for like 2 weeks, the creaking came back.
After replacing the bearing with a new one the creaking was complete gone. And it has been more than 2 months.
Thanks all for the help.