Ваша таблица project_users, кажется, представляет роли в проектах, добавьте другую модель, которая привязана к этой таблице:
project_role {
has one user
has one role
has one project
}
user {
has many project_role
...
}
project {
has many project_role
...
}
Тогда вы можете сделать:
$user = ORM::factory('user')
->with('project_role')
->where('project_role.project_id', '=', $id)
->with('project_role:role')->findall();
Если это не сработает, одно из следующего должно сработать, но может быть другой формой обхода того, что вам нужно.
$project = ORM::factory('project', $id);
$roles = $project->project_role->with('user')->with('role')->findall();
Или
$roles = ORM::factory('project_role')
->where('project_id', '=', $id)
->with('user')->with('role')->findall();