In my opinion the best way of doing this, is with the URL::asset() method.
For instance:
CSS
<link rel="stylesheet" href="{{URL::asset('css/style.css')}}" media="screen" />
or
JS
<script type="text/javascript" src="{{URL::asset('js/scripts.js')}}"></script>
You can also use it with images and basically any asset located in your public folder.
ie:
<img scr="{{URL::asset('img/image.jpg')}}}} id="someid">
By using this method, i find it easier to organise and separate my HTML markup from Laravel methods.
Say if i wanted to specify a css file that is to be loaded with the media="print" attribute, the "Laravel" way of doing this is the following:
{{HTML::style("print.css", array('media' => 'print'))}}
While the conventional way, using the {{URL::asset()}} method, is more comprehensive and accessible to front end developers(Which you may be working with in a team project).
<link rel="stylesheet" href="{{URL::asset('css/style.css')}}" media="print" />
You may say that the difference is minimal, but when dealing with plenty of markup attributes ("ids, data-attributes, classes custom-attributes"), the HTML::style(), HTML::image(), HTML::link() methods can turn out to be quite long, and in-comprehensive to html/css/js developers.
It all varies and depends on the developer's style of coding, but in my opinion markup should remain as "raw" as possible, so that it is more accessible to front-end developers.