can you make this code more compact

from creditcard import CreditCard
from debitcard import DebitCard
from coin_machine import IKEAMyntAtare2000
from ui_info import UIPayment, UIPayment, TicketInfo
from bitcoin import Bitcoin

class Payment:

    # Initiate Payment
    def __init__(self, price, info: TicketInfo):
        self.price = price
        self.info = info
        self.handle_payment(price)

    # The entire payment process with all paymant methods
    def handle_payment(self, price):
        if self.info.payment == UIPayment.CreditCard:
            price += 0.50
            c = CreditCard()
            c.connect()
            ccid: int = c.begin_transaction(round(price, 3))
            c.end_transaction(ccid)
            c.disconnect()
        elif self.info.payment == UIPayment.DebitCard:
            d = DebitCard()
            d.connect()
            dcid: int = d.begin_transaction(round(price, 3))
            d.end_transaction(dcid)
            d.disconnect()
        elif self.info.payment == UIPayment.Cash:
            coin = IKEAMyntAtare2000()
            coin.starta()
            coin.betala(int(round(price * 100)))
            coin.stoppa()
        elif self.info.payment == UIPayment.Bitcoin:
            price *= 0.000057
            btc = Bitcoin()
            btc.connect()
            btcid: int = btc.begin_transaction(price)
            btc.display_qr(btc.generate_qr())
            btc.end_transaction(btcid)
            btc.disconnect()