Before you were using:
```ruby
before(:each) do
  @alex  = create(:user, :name => 'Alex_P')
  @chris = create(:user, :name => 'Chris_K', :balance => 1.0)
end
```

One of the issues with this before block is that it is run before every spec. So for each spec, two different records are created in the database. This happens whether you use the actual objects created in the test or not. So, for example, in many of the specs, the `@chris` object is not used at all. However, in spite of this, he is still created for each spec, because of the before block. The combined effect of this is that it will slow down your test suite.

To address this, there are two things you can do:

1. Use `let` to store your variables. The difference between `let` and a `before` block is that the `let` is lazily evaluated. What this means is that the contents of the `let` block are not built or created until the actual object is called. So, in this scenario, if `chris` is not part of a spec, then that `chris` object will not be instantiated when that spec is called.

(As a sidenote to using `let`, some developers prefer not to use `let` and instead use helper type methods as it provides greater clarity. Thoughtbot has an interesting [blog post](http://robots.thoughtbot.com/lets-not) about the topic.)

2. To reduce database writes, only create or persist objects when necessary . In all of the tests below, none of the user objects have to be saved to the database for the tests to run properly. As such, it is better to `build` each object instead of creating them, since this is much more time efficient.