Question: ```
public function getShow($id, $take, $skip)
{
    return $this->with(array('looks' => function($query){
        $query->wherePublished(1)->orderBy('sort')->take($take)->skip(0);
    }))->whereId($id)->wherePublished(1)->get(array('id', 'title', 'short_title', 'thumb', 'banner', 'video'));
}

```

How can I pass through $take? It says it's undefined?

Answer: 
This way:

```
public function getShow($id, $take, $skip = 0)
{
    return $this->with(array('looks' => function($query) use ($take, $skip) 
    {
        $query->wherePublished(1)->orderBy('sort')->take($take)->skip($skip);
    }))->whereId($id)->wherePublished(1)->get(array('id', 'title', 'short_title', 'thumb', 'banner', 'video'));
}

```
Another way that could be helpful for method chaining and static call using [scope](http://laravel.com/docs/eloquent#query-scopes):

**Your model:**

```
public function scopeGetShow($qry, $id, $take, $skip = 0)
{
    return $qry->with(array('looks' => function($query) use ($take, $skip) {
        $query->wherePublished(1)->orderBy('sort')->take($take)->skip($skip);
    }))->whereId($id)->wherePublished(1);
}

```

**Then use it from controller like:**

```
$result = ModelName::getShow()
         ->get(array('id', 'title', 'short_title', 'thumb', 'banner', 'video'));

```