Short answer is YOU.
No, I don't mean because you tend to be lazy or procrastinate (that too of course 😅), what I mean is that you cannot get out of your own way:
Analysis by paralysis
You approach learning a foreign language the same way as if you are approaching learning math or science. You want to understand the logic behind every rule. The best way to compare it to is let's say you wanted to learn how to drive a car and instead of getting behind the wheel and starting to drive, you pop the hood open, take out the engine, break it down and learn the name of every part of the car.
6-12 months later you feel like you are ready, so you get behind the wheel and start driving. The first thing that happens is you get into a "car accident" of speaking to a native speaker and having no idea what was said to you. They speak so fast and they use none of the "engine parts" that you spent so much time learning.
Bring back your inner child
Instead of wasting your time trying to dissect why certain things are said the way they are, try to approach learning a foreign language the way you learned your native language when you were a child which was just to repeat what you hear and this way you will create a habit of saying things the right way despite not knowing why it is the right way. When we speak our native language we do not think of why we are saying the things a certain way and if we did, it would be the same as trying to analyze how is our body built to breath in the air (please don't try doing this because it may cause you a panic attack and cause you to stop breathing).
I spent 10 years trying to learn English before I came to the US at the age of 16, I learned every part of the sentence, how to create a question but when I arrived I realized it was all a waste of time. What actually helped is that I wasn't such a good student 😊 and in just 6 months I started to understand 90% of what I am to understand now and 3 months later I started to speak pretty much how I can speak right now. As I write this I realize that if I am pressed to answer I won't be able to explain what is the difference between gerund and participle, but I know how to say and write them correctly.
Get out of your own way
In conclusion, my advise is to stop trying to learn a foreign language like we learn science or math, but instead immerse yourself into as much of conversation with native speakers as possible. If you have the time and money to study abroad for 6-9 months, then you can expect the same results that I achieved in my first year in the US. But you can get similar results by finding an online language school where you can schedule a class around your schedule at an affordable rate and not have to miss out on your job, friends & family while spending money on airplane tickets and hotels. Check out our article about Italki, Preply, Verbling... what are the best online language classes?