SubtractAsync() confusion

I am currently new to Solid Modeling, and now I have encountered a problem.

This script is supposed to create a hole to a part once a player’s hitbox touches it.

SCRIPT:

local hitbox = game.ReplicatedStorage.Hitbox
local subtractpart = game.Workspace.Part

players.PlayerAdded:Connect(function(player)
	player.CharacterAdded:Connect(function(character)
		local humanoidrootpart = character.HumanoidRootPart
		local clonedhitbox = hitbox:Clone()
		clonedhitbox.Parent = character
		clonedhitbox.Weld.Part1 = humanoidrootpart
		clonedhitbox.Weld.Part0 = clonedhitbox
		clonedhitbox.Transparency = .5
		clonedhitbox.CanCollide = false
		local connection
		connection = clonedhitbox.Touched:Connect(function(otherbasepart)
			if otherbasepart:IsA("Part") then
				local parttosubtract = otherbasepart
				local subtractedpart = parttosubtract:SubtractAsync({clonedhitbox}, nil, Enum.RenderFidelity.Precise)
				parttosubtract:Destroy()
				subtractedpart.Parent = workspace
				connection:Disconnect()
			end
		end)
	end)
end)```