How to delete a tool from the player when a proximity prompt is triggered?

local prompt = script.Parent.Proximity_Prompt
local bolted = script.Parent.Bolted
local installed = script.Parent.Installed
local tire = script.Parent.Tire
local players = game:GetService("Players")

prompt.Triggered:Connect(function()
	installed.Value = true
	tire.Handle.Transparency = 0
	tire.Rim.Transparency = 0
	tire.Handle["finnishtyres (1)"].Transparency = 0
	tire.Rim.edgecover1.Transparency = 0.4
	tire.Rim.edgecover2.Transparency = 0.4
	tire.Rim.edgecover3.Transparency = 0.4
	tire.Rim.edgecover4.Transparency = 0.4
	tire.Rim.edgecover5.Transparency = 0.4
	tire.Rim.edgecover6.Transparency = 0.4
	prompt.Enabled = false
end)

When this prompt is triggered, I want a tool named “Tire” to be destroyed. Would like to be able to delete it from the backpack and from the player incase it is equipped

local function getToolsOf(object: Instance?): {Tool}
	if not object then return {} end
	local tools = {}
	for _, tool in pairs(object:GetChildren()) do
		if tool:IsA("Tool") then table.insert(tools, tool) end
	end
	return tools 
end

local function deleteFirstTool(tools: {Tool}, name: string): boolean
	for _, tool in pairs(tools) do
		if tool.Name == name then tool:Destroy() return true end
	end
	return false 
end

local function deleteToolByName(player: Player, toolName: string): ()
	local backpack = player:FindFirstChildWhichIsA("Backpack")
	if deleteFirstTool(getToolsOf(backpack), toolName) then return end 
	deleteFirstTool(getToolsOf(player.Character), toolName)
end

--when you want it to run:
deleteToolByName(player, "Tire")

This function should delete the first tool named “Tire” it finds, prioritizing the player backpack over their character(meaning that if two Tire tools exist, one equipped and one in the backpack, the backpack one will be deleted).

The player object that triggers a proximity prompt can be fetched as follows:

prompt.Triggered:Connect(function(player)
	print(player)
end)