Вы можете сделать это, добавив следующий код к вашему действию:
$dataProvider->sort->attributes['id'] = [
'asc' => [
new \yii\db\Expression("FIELD(login, 'finance', 'admin') DESC"),
'id' => SORT_ASC,
],
'desc' => [
new \yii\db\Expression("FIELD(login, 'finance', 'admin') DESC"),
'id' => SORT_DESC,
],
'label' => $searchModel->getAttributeLabel('id'),
];
$dataProvider->sort->defaultOrder = ['id' => SORT_ASC];
Функция поля возвращает позицию первого параметра среди других параметров или 0, если значение отсутствует среди них. Таким образом, для 'admin' он вернет 2, для 'finance' 1 и для других 0. Если вы закажете DESC таким образом, вы получите требуемый заказ.
Другой вариант - добавить эти определения для сортировки вметод поиска модели UserSearch, предложенный в mahsaa's answer. Зависит от того, хотите ли вы использовать эту сортировку в разных действиях.