I ended up using query builder and it works with this:
$articles = DB::table('articles')
->join('article_catalog', 'article_catalog.article_id', '=', 'articles.id')
->join('catalogs', 'catalogs.id', '=', 'article_catalog.catalog_id')
->whereBetween('catalogs.lft', array($activeItem->lft, $activeItem->rgt))
->select('articles.*')->paginate(9);
Thank you crynobone for all your help in the Laravel IRC chat room! If someone comes up with a better solution let me know!:)