I am creating a basic forum just so I have something meaningful to do while learning Laravel. So just like every forum is organized, on the main page i would like to have a list of categories and their subcategories, a total count of posts in every subcategory while also a link to latest post
So relationship is nested hasMany:
Category -> has Subcategories -> has Threads -> has Posts.
In controller method I have
$cat = Category::with('subcategory')->get();
return View::make('forum.index', compact('cat'));
and this works for basic list of categories and subcategories but I can't figure out the rest. This sure doesnt work
Category::with('subcategory')->with('threads')->with('posts')->get();
since relation between them is not set. Looking at Laravel docs, there is hasManyThrough relation. Is that a solution?
class Category extends Eloquent {
    public function subcategory()       {
        return $this->hasMany('Subcategory');
    }
    public function posts()     { // not sure about this cause it doesnt work
        return $this->hasManyThrough('Post', 'Thread');
    }
}
And on top of that how do I get posts->count() for every subcategory? Is it possible to have it split? Chaining could get complicated..
EDIT Table columns are
Categories
   id | title
Subcategory
   id | title | category_id
Threads
   id | title | subcategory_id | user_id  
Posts
   id | title | body | thread_id | user_id
EDIT 2 What would be the code for grabing only latest post? This doesnt work
$data =  Category::with('subcategories.threads')->with(array('posts' => function($query)
{
    $query->take(1);
}))->get();
 
     
    