1. Связываем модели категорий и статей (
документация)
class ArticleCategory extends Model
{
...
public function articles()
{
return $this->hasMany('App\Article', 'category_id');
}
...
2. В контролере получаем список всех категорий вместе с их статьями:
$categories = \App\ArticleCategory::with('articles')->get();
3. Во вьюхе проходим по всем категориям и выводим в отдельных блоках посты каждой:
@foreach($categories as $categorie)
<div class="category_block">
<h3>{{ $categorie->name }}</h3>
@foreach($categorie->articles as $article)
<div class="article">
{{ $article->name }}
</div>
@endforeach
</div>
@endforeach