Welding part to arm being slightly offset on occasion

I’m trying to weld a part to your arm, as if it like, pierced your arm and is stuck? The problem is that when it’s moving super fast and hits your arm, it may not weld in the correct spot (ie, a couple feet away from your arm).

What is the most efficient method to make sure the part is welded to the arm when it is actually colliding with the arm?
My ideas (feel free to debunk/confirm them)
-Save the position of the part the exact second the touched event is triggered, then reposition it there when its time to weld/after I’ve welded it (if that doesn’t destroy the weld) (I haven’t tried it but I think this sounds good? Would it work?)
-Before welding, constantly check if they’re colliding with :GetTouchingParts() or whatever and then weld when it says they’re touching

I recommend using raycasts for this since it can detect an accurate position of where it was hit
https://create.roblox.com/docs/mechanics/raycasting#detecting-hits

how should i use raycasting for this? like the second the touched event is triggered?

or do you mean scrap the touched event and use raycasting in its place

I’ve never tried this but maybe you could combine the touched event and raycasting like when the part was hit raycast to its direction