You should not store credit card details in your database, credit card details should never even hit your server if you want to be able to charge people. To store creditcard details on your server you must have PCI complience.
What is PCI compliance? The Payment Card Industry Data Security Standard (PCI DSS) applies to companies of any size that accept credit card payments. If your company intends to accept card payment, and store, process and transmit cardholder data, you need to host your data securely with a PCI compliant hosting provider.
That's why you should use Cachier and either Stripe or Braintree. I am using Braintree since they accept paypal payments as well. Braintree is actually Paypal owned company. Use them and ditch omnipay.
You will not find many tutorials that explain how to integrate Braintree into your project. I am doing that currently and I actually payed a professional to produce a demo for me demonstrating one time payment and subscriptions.
Studying that demo I am able to integrate Braintree into my own project.
I'll probably write a tutorial on how to use Braintree soon.