I am making a script that charges up an orb, however I don't know why the tweening animation isn't working.

game.ReplicatedStorage.Custom.OnServerEvent:Connect(function(plr,mousehit,key)
	if key == "Charge" then
		local char = game.Players[plr.Name].Character
		local hum = char.Humanoid
        local root = char.HumanoidRootPart
        local charging = Instance.new("Part",workspace)
        charging.Shape = Enum.PartType.Ball
        charging.Material = Enum.Material.Neon
        charging.Size = Vector3.new(0.1,0.1,0.1)
        charging.BrickColor = BrickColor.new("Really red")
        charging.CanCollide = false
        charging.Anchored = true
	function stay()
	while true do
	charging.CFrame = char.Head.CFrame + char.Head.CFrame.LookVector*2
	wait()
	end
	end
	spawn(stay)
	
	function charge()
		local chargingPart = charging:Clone()
		chargingPart.Parent = charging
		chargingPart.CanCollide = false
	    chargingPart.Shape = Enum.PartType.Ball
        chargingPart.Material = Enum.Material.Neon
        chargingPart.BrickColor = BrickColor.new("Really red")
        chargingPart.Size = Vector3.new(0.2,0.4,0.2)
        chargingPart.CFrame = charging.CFrame * CFrame.new(math.random(-0.6,0.6),math.random(-0.6,0.6),math.random(-0.6,0.6))
        chargingPart.Parent = charging
        chargingPart.Anchored = true
        game.Debris:AddItem(chargingPart,0.01)
	end
	
	    function rep()
	    for i = 1,100 do
		spawn(charge)
		wait(0.01)
	end
	end
	spawn(rep)
	function tweening()
	local tween = game:GetService("TweenService")
	local tweenInfo = TweenInfo.new(1,Enum.EasingStyle.Linear,Enum.EasingDirection.Out,0, false,0)
	local tweenProperties = {CFrame = CFrame.new(5,5,5)}
	local tweenRun = tween:Create(charging,tweenInfo,tweenProperties)
	tweenRun:Play()
	end
	spawn(tweening)
	end
	end)