rspec letとbefore呼び出されるタイミング

テストコード

require 'rails_helper'

describe 'test' do
  before do
    p "before!"
  end

  let(:user) {
    p "let!"
    user = User.create(name: "hello")
  }

  let(:user2) {
    p "let!"
    user = User.create(name: "hello2")
  }

  it 'test1' do
    expect(user.name).to eq "hello"
  end

  it 'test2' do
    p user.name
    expect(User.all.count).to eq 1
  end
end

結果

beforeの次にletが呼び出される。

test
"before!"
"let!"
  test1
"before!"
"let!"
"hello"
  test2