# What is the difference between collection and query builder in Laravel?

## Query Builder

Builder is a layer of abstraction between your application and the database. Typically it's used to provide a common API for you to build platform-agnostic database queries.

```php
$users = DB::table('users')
                ->where('votes', '>=', 100)
                ->get();
```

## Collection

A Collection is a data structure that encapsulates a standard PHP array. It provides a chainable API for standard `array_*` type PHP functions, together with other useful functions for manipulating a collection of data.

```php
$collection = collect(str_split('AABBCCCD'));
 
$chunks = $collection->chunkWhile(function ($value, $key, $chunk) {
    return $value === $chunk->last();
});
 
$chunks->all();
 
// [['A', 'A'], ['B', 'B'], ['C', 'C', 'C'], ['D']]
```