I think the model is Artist, and it has a relationship with, then you can use ORM CakePHP in this way and hasMany with Portfolio
first you change the relationship between Artist and Portfolio.
$this->Artist->unbindModel(array('hasMany'=>array('Portfolio')))
;
and then build a relationship
$this->Artist->bindModel(array('hasOne'=>array('Portfolio')));
Finally, you must create another relationship
$this->Artist->bindModel(array( 'belongsTo'=>array( 'Product'=>array( 'clasName'=>'Product', 'foreignKey'=> false, 'conditions'=>'Product.id = Artist.product_id' ), 'ProductAvaibility'=>array( 'clasName'=>'ProductAvaibility', 'foreignKey'=> false, 'conditions'=>'ProductAvaibility.id = Product.product_avaibility_id' ), 'OrderDetail'=>array( 'clasName'=>'OrderDetail', 'foreignKey'=> false, 'conditions'=>'Product.id = OrderDetail.product_id' ), 'Order'=>array( 'clasName'=>'Order', 'foreignKey'=> false, 'conditions'=>'Order.id = OrderDetail.order_id' ), ) ));
Now that the relationship is fulfilled, you can make your find
$this->Artist->find('all', array( 'conditions'=>array( 'Artist.online'=>true ), 'group'=>array( 'Artist.id' ), 'order'=>array( 'Person.last_name', 'Person.first_name', ) ))
I hope this can be useful for you.