The trick is realizing there aren't that many things to try (simplify, sub, by-parts, rational functions pipeline). It sounds a little like you expect to know what to do in each case. That's not how it works. You're right. Integration is hard. You just have to try stuff. Then try more stuff. The times when to use the different approaches look kinda the same tbh. You will not know what the first step is. That's, uh, the fun.