Как оптимизировать обращения к базе данных?
Жадная загрузка.Post::with('commentsCount')->get();
В модели что-то вроде:public function commentsCount()
		{
		  return $this->comments()
		    ->selectRaw('count(id) as aggregate')
		    ->groupBy('id');
		}
		public function getCommentsCountAttribute()
		{
		  if ( ! array_key_exists('commentsCount', $this->relations))
		    $this->load('commentsCount');

		  $related = $this->getRelation('commentsCount')->first();

		  return ($related) ? (int) $related->aggregate : 0;
		}
В каждом посте будет аттрибут "commentsCount" с количеством комментариев.
Не знаю точно, но попробуйте использовать "Активную загрузку".
Laravel 4: https://laravel.ru/docs/v4/eloquent#активная
Laravel 5: https://laravel.ru/docs/v5/eloquent#активная