コントローラーか制約か--権限を強制する最良の方法?

パーミッションはコントローラーか制約側で適用する必要があると思います。モデル側は、誰が呼び出しているのかを把握していないはずです。

この件についてご検討いただき、誠にありがとうございます。