Lora,
Вы занимаетесь камланием в бубен, вместо того, чтобы понять, что делаете.
Смотрим запрос хука users_after_update
list($profile, $old) = cmsEventsManager
::hook('users_after_update', [$profile, $old]);
То есть вам всё правильно написали, входящие данные надо развернуть.
Входящие данные лучше обзовите как-нибудь по-другому. Например просто $data
public function run($data){
list($profile, $old) = $data;
Итак, профайл юзера получили.
Теперь, я так понимаю, Вы хотите обновить таблицу appointment_events.
Смотрим функцию update в модели:
public function update($table_name, $id, $data, $skip_check_fields = false, $array_as_json = false)
То есть туда надо отправить имя таблицы, ид строки, которую будем править и данные, которые туда будем записывать:
$this->cms_model->update('appointment_events',$profile['id'], array('title' => 'www'));
И меня смущает один нюанс. А точно ид нужной строки совпадает с ид профайла?