Кажется, нет ничего плохого в том, чтобы помещать подобные проверки в Политику вашей модели, это немного зависит от контекста. Я хотел бы думать о политиках (как вы описали) как начальные ворота входа в данное приложение. Так что, если это относится, например, только к методу обновления вашего контроллера, у вас все в порядке.
Однако, в случае, если могут быть другие "пути" или процессы, на которые может повлиять "open / ready" Ограничение, которое вы описали, также может быть целесообразным, чтобы поместить этот вид проверок в метод ModelObserver saving
.
Делая это, вы убедитесь, что вы не случайно манипулируете объектом, когда он ready
только потому, что вы забыли сделать проверку авторизации заранее. Другими словами, реализуя его в методе saving
ObserverClass, вы получаете «автономный» бит поведения, который скорее представляет бизнес-логи c, чем логи авторизации c.