I need help with this Ariel Kick attack

Hello, so basically Im tryna make a moveset inspired by the anime protagonist Satoru Gojo from Jujutsu Kaisen and one of his moves is kicking the opponent upwards into the sky then teleporting on top of them slamming them downward.

Heres the script:

Remote.OnServerEvent:Connect(function(player)
	local character = player.Character
	local hum = character:WaitForChild("Humanoid")
	local humrp = character:WaitForChild("HumanoidRootPart")
	local torso = character:WaitForChild("Torso")
	
	local KickAnim = hum:LoadAnimation(script.Kick)
	local AirAnim = hum:LoadAnimation(script.Air)
	
	KickAnim:Play()
	
	wait(0.2)
	
	local Hitbox = Instance.new("Part",workspace)
	Hitbox.Size = Vector3.new(5,5,5)
	Hitbox.CFrame = humrp.CFrame * CFrame.new(0,0,-3.5)
	Hitbox.Color = Color3.new(1, 0, 0)
	Hitbox.Transparency = 1
	Hitbox.CanCollide = false
	Hitbox.Anchored = true
	
	
	Hitbox.Touched:Connect(function(hit)
		if hit.Parent ~= character and hit.Parent:FindFirstChild("Humanoid") then
			local echar = hit.Parent
			local ehum = echar:WaitForChild("Humanoid")
			local ehumrp = echar:WaitForChild("HumanoidRootPart")
			
			echar:WaitForChild("Stunned").Value = true
			
			Hitbox:Destroy()
			
			hum.WalkSpeed = 0
			hum.JumpPower = 0
			hum.AutoRotate = false
			ehum.AutoRotate = false
			
			local newCFrame = humrp.CFrame * CFrame.new(0,0,-3)
			local lookPosition = Vector3.new(humrp.Position.X, ehumrp.Position.Y, humrp.Position.Z)
			
			ehumrp.CFrame = CFrame.lookAt(newCFrame.Position, lookPosition)
			
			local eAir = ehum:LoadAnimation(script.Air_Enemy)
			
			AirAnim:Play()
			eAir:Play()
			
			wait(0.3)
			
			local bv = Instance.new("BodyVelocity")
			bv.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
			bv.P = 10000
			bv.Velocity = humrp.CFrame.LookVector * 10 + Vector3.new(0,30,30)
			bv.Parent = ehumrp
			
			game.Debris:AddItem(bv,1)
			
			AirAnim.KeyframeReached:Connect(function(kf)
				if kf == "Disappear"  then
					for i, v in pairs(character:GetDescendants()) do
						if v:IsA("Part") or v:IsA("MeshPart") then
							v.Transparency = 1
						end
					end
				end
				
				if kf == "Reappear"  then
					for i, v in pairs(character:GetDescendants()) do
						if v:IsA("Part") or v:IsA("MeshPart") then
							v.Transparency = 0
						end
					end
					
					humrp.CFrame = ehumrp.CFrame * CFrame.new(0,2,0)
				end
			end)
			
			
			echar:WaitForChild("Stunned").Value = false
		end
	end)
	
	wait(0.3)
	Hitbox:Destroy()
	print("Works")
end)

This is what I made but its not working correctly can someone help?