There's a discrepancy between url() and route() in regards to the second (array) argument. Using the latter your function call will work as expected when status isn't defined as a route parameter; it'll tack it on to the path as a query string.
// in routes file
Route::get('account/payments', 'Controller@method')->name('account.payments');
route('account.payments', ['status' => 'verified']);
// www.website.com/account/payments?status=verified
The url() function however simply appends all elements of the second argument onto the supplied path instead of a query string. Still, it's possible to define an inline query string:
url('account/payments?status=verified')
// www.website.com/account/payments?status=verified
Here's another example to see how url() handles the second argument. It merely inserts the "extra" path segments:
url('account/payments?status=verified', ['bar'])
// www.website.com/account/payments/bar?status=verified