I do understand the reasoning that page models are not loaded in the panel (and thus in hooks). The kirby()->models() does not work for me either unfortunately. Any other ideas on how to get the page as instance of the correct page model inside a hook?
Just realized, that kirby()->models()does work for me after a small change.
Inside the hook I was trying to access the page model of the currently edited page. Loading the models inside the hook (using kirby()->models()) didn’t have any effect on the page itself, but when requesting the page again I got the correct page model.
Just loading the models with kirby()->models() and then creating an instance for yourself shouldn’t cause any issues.
It’s just that if that instance somehow becomes part of Kirby’s internal object structure, it can cause issues. For example a field could read the content from the instance to display it in the Panel. If the return value of the model doesn’t actually represent the content in the content file, you’d then overwrite the content file with something else on save.