Есть таблица post в которой есть ячейка "category".
В эту ячейку записываются категории поста. Имеют вид "Архитектура;Строительство;Монтаж"
вообще это неправильно. у вас должно быть 2 таблицы связанные связью 1 ко много.
class Post extends Eloquent
{
public $table = 'posts';
public function category()
{
return $this->belongsTo(Category::class);
}
}
class Category extends Eloquent
{
public $table = 'categories';
public function posts()
{
return $this->hasMany(Post::class);
}
}
тогда вы сможете красиво выгребать нужные записи, например такая конструкция вернет коллекцию моделей постов в категории такой-то
Category::where('name', 'такая-то')->posts;
если нужно применить сортировку или условие, тогда нужно вызывать как метод
Category::where('name', 'такая-то')->posts()->where('public', true)->orderBy('created_at')->get();
так же в обратном порядке, можно получить категорию модели для поста такого-то, например с таким-то ид
Post::find($id)->category;
создать пост в такой-то категории
Category::find($id)->posts()->create(array('text' => 123));
и тд. почитайте лучше документацию, там все просто как 3 копейки