Doors keep rotating not in the right way

Hello! So I have a room generator and I added doors to each room. Though whenever the script adds the doors in the generated rooms. Its always in the wrong generation? How would I fix it?

script:

local TweenService = game:GetService("TweenService")

local door = {}

function door.Open(doorModel)
	doorModel:SetAttribute("Open", true)
	
	local cframe = doorModel.Hinge.CFrame * CFrame.Angles(0, math.rad(100), 0)
	local doorTween = TweenService:Create(doorModel.Hinge, TweenInfo.new(0.5), {CFrame = cframe})
	
	doorTween:Play()
	doorModel.Door.Open:Play()
end

function door.New(roomModel, number)
	local doorModel = workspace.Door:Clone()
	
	doorModel:PivotTo(roomModel.Exit.CFrame)
	doorModel.Parent = roomModel
	doorModel:SetAttribute("Open", false)
	doorModel.Sign.SurfaceGui.TextLabel.Text = number
	
	doorModel.Sensor.Touched:Connect(function(hit)
		local humanoid = hit.Parent:FindFirstChild("Humanoid")
		if humanoid and doorModel:GetAttribute("Open") == false then
			door.Open(doorModel)
		end
	end)
	
	return doorModel
end

return door

script 2:

local door = require(script.Door)

local room = {}
room.info = require(script.RoomInfo)
room.LastTurnDirection = nil
room.random = Random.new()

function room.GetRandom(prevRoom, number)
	local totalWeight = 0
	for i, info in pairs(room.info) do
		totalWeight += info.Weight
	end
	
	local randomWeight = room.random:NextInteger(5, totalWeight)
	local currentWeight = 0
	local randomRoom = nil
	for i, info in pairs(room.info) do
		currentWeight += info.Weight
		if randomWeight <= currentWeight then
			randomRoom = workspace.Rooms[i]
			break
		end
	end
	
	
	local direction = room.info[randomRoom.Name]["Direction"]
	local hasStairs = room.info[randomRoom.Name]["Stairs"]
	local prevHadStairs = room.info[prevRoom.Name]["Stairs"]
	
	if (prevRoom.Name == randomRoom.Name)
		or (direction and direction == room.LastTurnDirection)
		or (hasStairs and prevHadStairs)
	then
		return room.GetRandom(prevRoom)
	else
		if direction then
			room.LastTurnDirection = direction
		end
		
		return randomRoom
	end
	
	
end

function room.Generate(prevRoom, number)
	local randomRoom = room.GetRandom(prevRoom)
	local newRoom = randomRoom:Clone()
	
	newRoom.PrimaryPart = newRoom.Entrance
	newRoom:PivotTo(prevRoom.Exit.CFrame)
	
	local newDoor = door.New(newRoom, number)
	
	newRoom.Parent = workspace.GeneratedRooms
	
	return newRoom
end

return room

Picture Example: