How do I make a model rotate on a fixed point like a door when a player touches it?

I want to make it so when a model rotates with the script I put in it it rotates around a fixed point. The model is a door so that should help with what it might look like.
I am unsure how to rotate the model around a fixed point but I do know how to rotate a model although it isn’t the best way.

local model = script.Parent
local rad = math.rad
local rotateAmount = -90

task.wait()
local newCFrame = model.PrimaryPart.CFrame * CFrame.Angles(0, rad(rotateAmount), 0)
model:SetPrimaryPartCFrame(newCFrame)

I looked on here but couldn’t find an answer that both applied and that I could understand.
I made this post already but last time it got only 1 reply by another person that didn’t explain much so I couldn’t delete the original topic.
Edit: I just released that a better way would be to do this in smaller increments. I would use TweenService but I don’t know how to for models.