public function show($id) { $user = UserService::getLoggedInUser(); $item = DB::transaction(function () use($id, $user) { if ($user) { Item::updateStatus($id, $user, 'read'); } $item = Item::with('tags', 'userStatuses')->find($id); return $item; }); if (!$item) { return Response::json(array('error_code' => Config::get('constants.ERROR.ITEM_NOT_FOUND'), 'error_message' => 'Item not found'), 500); } if ($user) { return Response::json(array('success_code' => 'OK', 'data' => $item->toArray($user))); } else { return Response::json(array('success_code' => 'OK', 'data' => $item->toArray())); } }