I have this setup where if an item touches it, it will delete the item (which it now does) and will give you a different item. However it deletes the item but doesn't give you the new item. This is a normal script.

function touch(h)
	local player = game.Players:GetPlayerFromCharacter(h.Parent)
	if player then
		if h.Parent.Name == "Dough" then
			local backpack = player:WaitForChild('Backpack')
			game.ReplicatedStorage["Raw Sauce and Cheese Pizza"]:Clone().Parent = backpack
			print("HAHAHA")
			h.Parent:Destroy()
		end
	end
end
script.Parent.touch.Touched:connect(touch)