количество получить count($model->orderProduct).
следует понимать что т.к. связь hasMany, то в orderProduct будет массив объектов, либо бежим по $model->orderProduct в цикле, либо к конкретному объекту по ключу $model->orderProduct[0]->product->name
так же можно не через viaTable, а просто указать в with
в Order связь
public function getProductOrder() {
return $this->hasMany(Order2Product::class, ['id' => 'order_id'])
}
в Order2Product связь
public function getProduct() {
return $this->hasMany(Product::class, ['product_id' => 'id'])
}
а потом в запросе with(['orderProduct.product'])