К тому же я бы хотел иметь возможность чтобы поле role_id мог обновлять только администратор, но не как не сам пользователь.
Создайте миддлвар для админа и сгруппируйте в него роут, который принимает пост запрос и обращается к контролеру.
К примеру, я хочу обновить пароль, остальное трогать не нужно, и так далее.
При рендеринге формы, сделайте так, чтобы значения инпутов были автоматом заполнены. Так, если админ не будет менять поля, то они отправятся в запрос не измененными, а те которые изменялись, поменять запись в таблице