Функция запоминания будет хранить результат обратного вызова в кеше, если предусмотрен обратный вызов.
Это означает, что вам нужно, чтобы ваш обратный вызов возвратил результат, который вы хотите сохранить:
Cache::remember('footer_pages', 180, function () {
return DB::table('pages')->select('id', 'title')->where(array('status' => 'Published', 'menu_position' => 'Footer'))->orderBy('sort', 'ASC')->get();
});