Prompts not working

I am tring to make a mail system using proximity prompts. When the prompt runs it firs a client event and this is the script inside of StarterPlayerScripts. The problem I am having is that before the player uses the second prompt to deliver the mail the script gives them money. Anyone know my problem?

local event = game.ReplicatedStorage.MailEvent
local delivedevent = game.ReplicatedStorage.Mail_Delivered_Event

function mailer()
	
	local number = math.random(1,3)
	print(number)
	local mail = game.Workspace.Mail_Parts.Mail_Spots[number]
	
	game.Workspace.Mail_Parts.MainPart.ProximityPrompt.Enabled = false
	
	mail.ProximityPrompt.Enabled = true
	
	while true do
		
		if mail.ProximityPrompt.Triggered then
			
			local player = game.Players.LocalPlayer

			mail.ProximityPrompt.Enabled = false
			game.Workspace.Mail_Parts.MainPart.ProximityPrompt.Enabled = true
			
			wait(1)
			print("triggered")

			player.Stats.Credits.Value = player.Stats.Credits.Value + 25
			
		end
		
	end
	
end

event.OnClientEvent:Connect(mailer)

Rather than using a while loop, you should be using Event based triggers, something along the lines of:

local function mailPromptTriggered()
	mail.ProximityPrompt.Enabled = false
	game.Workspace.Mail_Parts.MainPart.ProximityPrompt.Enabled = true
end

local function mainpartPromptTriggered()
	player.Stats.Credits.Value = player.Stats.Credits.Value + 25
	game.Workspace.Mail_Parts.MainPart.ProximityPrompt.Enabled = false
	mail.ProximityPrompt.Enabled = true
end

mail.PromptTriggered:Connect(mailPromptTriggered)
game.Workspace.Mail_Parts.MainPart.PromptTriggered:Connect(mainpartPromptTriggered)

Try this

local player = game.Players.LocalPlayer
local event = game.ReplicatedStorage.MailEvent
local delivedevent = game.ReplicatedStorage.Mail_Delivered_Event



function mailer()
	local number = math.random(1,3)
	print(number)

	local mail = game.Workspace.Mail_Parts.Mail_Spots[number]
	game.Workspace.Mail_Parts.MainPart.ProximityPrompt.Enabled = false
	mail.ProximityPrompt.Enabled = true
		
	mail.ProximityPrompt.Triggered:Connect(function()
		mail.ProximityPrompt.Enabled = false
		game.Workspace.Mail_Parts.MainPart.ProximityPrompt.Enabled = true
		wait(1)
		print("triggered")
		player.Stats.Credits.Value = player.Stats.Credits.Value + 25
	end)
end

event.OnClientEvent:Connect(mailer)