How to detect when a parent of a child gets deleted?

I have a turret that uses OOP to operate. I use a janitor to remove delete said turret, and any connections to it, when the turret gets deleted via the player regening it, which works fine.

The turret resides within a tycoon that a player owns. This tycoon is a model that gets deleted when the player rebirths/leaves, and deletes all the children within it.

I am trying to make it so that when the tycoon gets deleted via the owner rebirthing or leaving, that it executes the :Destroy() method on the janitor of the turret OOP.

I have tried using .Destroying and .AncestryChanged on the main and physical turret model to detect when it is being removed, but this only seems to fire when the instance is being directly destroyed/changed, not when it is indirectly being destroyed/changed by a parent instance.

How do I fix this problem?

have you tried something like this on the parent

MainObject:GetPropertyChangedSignal('Parent'):Connect(function()
	if not MainObject.Parent then
		-- do something here
	end
end)