public function postMessage() { switch (Request::input('target_type')) { case 'channel': $target = Channel::findOrFail(Request::input('channel_id')); break; case 'user': $target = User::findOrFail(Request::input('user_id')); break; default: abort(422); } priv_check('ChatMessageSend', $target)->ensureCan(); $target->sendMessage(Auth::user(), Request::input('message')); return json_encode('ok'); }