Это потому, что PDO заключает связанные параметры в кавычки, поэтому ваш SQL будет выглядеть примерно так:
SELECT 'id' FROM orders
Вы выбираете идентификатор строки, а не столбец.Вы не можете связать имена столбцов, только значения.
Чтобы ваш запрос работал, в том же формате, что и вы, вам нужно сделать это:
$columns = ['id'];
$orders = DB::table('orders')
->select($columns)
->get();
Если выесли вы хотите быть более безопасными, например, если вы получаете имена столбцов из строки запроса или чего-то еще, вы можете сделать:связанные параметры, вы можете сделать следующее:
$query = DB::table('table_name')->select(['id', 'column1']);
dd($query->toSql(), $query->getBindings());