Help with Soccer System

Hello.
Recently I decided to remake my soccer game, but I came across the following issues:
Firstly, the physics I used were laggy and hard to customize, and gave the game an unpolished feel.
I was wondering what the best way to kick the ball/add velocity to it would be. I’ve used assemblylinearvelocities, linearvelocities, and so on and I’m not sure which to use, as I don’t know which has the best performance, smoothness, and flexibility.
Secondly, I’m not sure how I should weld the ball to the player. Previously I parented the ball to the character which had it, and used a motor6d. This let me animate easily, and it let me easily implement things like idle or running anims without anything extra. It’s a tad bit buggy and might not be the best performance wise, so I’m wondering if i should keep it that way or change it. Thanks.